SQL Serverでファイルをエクセル:店は、私は、このシナリオに適したソリューションを探しています
- 私は、SQL Server 2008 R2のバックエンドとのasp.netアプリケーションを持っています。
- ファイルをアップロードして後で取得できるように保存する必要があります。
- また、私はこのファイルをdb側のクエリの目的で解析する必要があります。ですから、私はこのファイルのデータとdatatableとSQLの結果の両方を組み合わせる必要があります。
だからここに私が考えたものだ:
- Storeは
varbinary(max)
としてSQL Serverでファイルをエクセル - これは.NETかなり簡単通過後のファイルを取得することができます。 - 解析:ユーザーがファイルをアップロードするときに行う方法の1つは、openxmlやサードパーティのライブラリを解析してデータテーブルにし、結果セットを返すストアドプロシージャに渡すことです。
データセットを渡すとき、それは我々が全体のファイルを渡すときにまず(データベースへの2回の大量のデータを渡す必要があることを意味し、そして第二ので、私は、このアプローチは好きではありません。
??これより効率的に行う方法について任意の提案は、それが可能このようなものを使用してvarbinary型の最大のデータを読むことです:
SELECT *
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=D:\TestJET.xls;
Extended Properties=''Excel 12.0;HDR=NO;IMEX=1;ImportMixedTypes=Text''')...[Sheet1$]
が、実際にファイルを作成せずに
をそれともそれがありますDBにファイル全体を渡すことはできませんが、データテーブルからファイルを取り戻すことは可能ですか?
多分varbinary(max)
はXMLのような異なるデータ型を使用するのに最適なソリューションではありませんか?
Excelファイルはかなりシンプルです。マクロや数式を持たない1つのスタイル付きテーブル。 (ただし、CSVに変換することはできません)ファイルサイズは200〜800kbです。
エクセルファイルのデータを構造化できますか?どのようなテーブルですか? –
Excelファイルを共有ドライブに残して、単にパス名を保存することはできますか?データベースに必要な場合は、すぐにデータをロードしてから、オフ時間にExcelロードをバッチすることができますか? –