いまは、通常、データをインポートからスプレッドシートを、複数のデータベースカラム?

StackOverflow https://stackoverflow.com/questions/390784

質問

何らかの理由には、たくさんのお客様に対して既存のデータに格納されたスプレッドシート.しばしばあるとは言わないまでも、数百人の何千人ものである表計算シートにお客様を手動で入力してwebサイトを通して(または天国で輸入を禁止している自分)が出の問題をもたらしていました。通常、このデータなので地図表計算カラムデータベースのカラムです。そのおもてなしをモダン過ぎると簡単です。多くのデータを操作する前にデータベース(データが必要に分割によるカンマ区切りで入力など)のデータが必要に広がる複数のテーブルします。

いう質問は、ないのでわからないの多いものの、いまだに決済がないという感じがありますので仕事です。これまで重ねてきたすべての以下の取り組み(あるいは忘れた):

  • Excelを利用したデータのなので、ちょっとや輸入
  • 輸入全体に表計算一時テーブルとして輸入SQL
  • 文書のスクリプトスポートとインポートのデータで使用しましたVBScript、C#やRuby)

これまでに、スクリプトの最も柔軟なものに感じで少し無骨.うれしいでこれを行うに十分に私はも想を書く少しDSLでは、速いものです。

その前にしたいと思っているなら、私はあるので、より良いそうです。

役に立ちましたか?

解決

あなたはあなたができる場合は、境界を設定する必要があります。彼らは、ファイルの種類(エクセル、CSVなど)、カラム名、有効な値、などが含まれ、予想されるデータ、で使用するためにあなたができるようにすべきテンプレートを試してみて、提供しなければならないファイルを参照し、それをアップロードするために使用あなたのページ/フォームでます。

ファイルがアップロードされると、

は、検証および輸入を行う必要があります。 (あなたがマイクロソフトのスタックを使用している場合)これを行うには、ADO.NET、ファイルストリーム、DTS / SSIS、またはOfficeオートメーションを使用することができます。検証部分では、あなたは彼らが間違っていたか、変更する必要があるものの正確のユーザーに伝える必要があります。これは、検証ページを有するデータグリッド内の実際のデータを有し、かつ、正確な行/列上のエラーで赤ラベルを提供することを含むかもしれません。あなたはオフィスオートメーションを使用している場合は、それらを正確な細胞数を与えることができますが、OfficeのPIAは、首の痛みです。

検証が受け入れられると、

、あなたが好きしかし、情報をインポートすることができます。私は、ステージング表にそれを入れて、それをロードするためにストアドプロシージャを使用して好むが、それは私だけです。いくつかは、オブジェクトモデルを使用することを好むが、あなたは多くのデータを持っている場合、これは非常に遅くなることがあります。

をあなたが個人的にこれらのファイルを手動でロードし、それらを行くし、操作する持っている場合は、私は彼らの間で共同性を見つけ、追跡する標準を考え出すお勧めします。あなたはそれを持っていたら、それはユーザがそれを自分で行うことができますすることができたり、たくさんより速くそれを自分で行うことができます。

はい、これは多くの作業ですが、長い間、間違ったで、時間の95%を働くプログラムがある場合には、誰もが勝ちます。

これは単なる自動化することができない状況にあることを行っている場合、あなたはおそらくちょうどバニラステージング表を持っており、輸入へのSQLを持っている必要があります。あなたは、1つのステージング表にデータをロードする基本的な操作を行い、その後、あなたのSQLが期待TEステージング表にロードする必要があります。

私は非常に多くの輸入とETLツールをやった、と実際にそれを処理するための簡単な方法はありません。唯一の方法は本当に合理的である標準を思い付くし、その周りに、プログラムに固執することです。

他のヒント

ええ...それはちょうど吸うます。

私は、スクリプトを使用して行くだろう。そして、私はあなたが別のテーブルに単一の行と一致する必要が列を繰り返していると仮定します。それを記録し、誰かが手動で行う作る...私は合理的なマッチングを行うだろうし、あなたが行が発生した場合、スクリプトはに対処し、データを移動することができない。

となりがんを殺すことはもちろん、一般的に、私の成功の輸出のデータをCSVロセスに対して、トランザクショを読されている内容が消えてしまうroolやスクリプトmungingで、必要に応じて、挿入します。によっては素晴らしさを私の環境からできるデータベースインターフェイスのスクリプト言語を含む文書SQLのINSERT入スクリプトファイルです。

がCSVのパッケージで提供可能のために Python, Ruby, は、 Perl.

DSLは、移動するための方法である。

あなたの問題のためのドメインモデルを作成します。あなたが必要な概念であるように、あなたは、セル、列、行、データベース・テーブル、分解体、組み合わせフィールド、データベース列への細胞からのマッピングについて話しています。また、あなたはおそらく、(細胞の)範囲、およびシートが欲しいます。

単純なビューは、スプレッドシートではなく、根本的な式の値を調べます。タブ区切りテキストとしてスプレッドシートをエクスポートすると、あなたがそれにアクセスすることができます。あなたが式にアクセスする必要がある場合、あなたは、XML-スプレッドシート、またはOffice XML形式のいずれかのXML表現との方がよいでしょう。

あなたはExcelでDSLを考え出すことができるかもしれません。それはあなたの賢く、ユーザーがマッピングを行う(の一部)する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top