0

別のデータ インポート ソリューションを探しています。現在、私のプロセスは次のとおりです。

  1. 大きなxlsxファイルをExcelで開く
  2. すべての「|」を置き換えます (パイプ) スペースまたは別の一意の文字
  3. ファイルをパイプ区切りの CSV として保存します
  4. SQL Server Management Studio 2008 R2 のインポート ウィザードを使用して、CSV ファイルをインポートします。

プロセスは機能します。ただし、ロードされるファイルが非常に大きい (約 100 万レコード) ため、手順 1 ~ 3 には長い時間がかかります。

いくつかの調査に基づいて、いくつかの潜在的な解決策を見つけました: a) 一括インポート - 残念ながら、ファイルをフラット (または CSV) 形式に変換する必要があるため、上記の手順 1 ~ 3 を削除することはできません b) OpenRowSet/OpenDataSource - この問題には 2 つの問題があります。まず、読み込みに時間がかかります (100 万件のレコードで約 2 時間)。次に、一度に多くのファイル (それぞれ 100 万レコードを含む約 20 ファイル) をロードしようとすると、「メモリ不足」エラーが発生します。

私は SSIS を試していません。大きな xlsx ファイルに問題があると聞きました

これは私の質問につながります。大きなExcelファイルのインポートを高速化するソリューション/代替オプションはありますか?

助けてくれて本当にありがとう。

4

2 に答える 2

2

私はデータ視覚化ツールとして Excel を愛用していますが、データ トランスポート レイヤーとしては役に立ちません。私の好みは、JET/ACE ドライバーでクエリを実行するか、表形式以外のデータに C# を使用することです。

私はそれを数百万まで上げていませんが、データに対して二重の読み取りと書き込みを実行する必要がないという事実に基づいて、最初のアプローチは現在よりも高速でなければならないと信じなければなりません。

于 2013-09-17T02:45:38.890 に答える
0

私が以前に行ったことがあります (そして、ファイルの種類が XLS ではなく XLSX であることを確認したので取り上げます) は、winzip を使用してファイルを開き、XML データを取り出してからインポートすることです。2007 年以降、XLSX ファイルは実際には、多くのフォルダー/ファイルを含む zip ファイルになっています。Excel ファイルが単純な場合 (多くのマクロ、チャート、書式設定などではない場合)、バックグラウンドにある XML ファイルからデータを取得するだけです。WINZIPで見られることは知っていますが、他の圧縮アプリについては知りません。

于 2013-09-16T21:15:01.967 に答える