ストリームから Excel ファイルを読み取る方法が必要です。ADO.NET のやり方ではうまくいかないようです。
シナリオは、ユーザーが FileUpload を介してファイルをアップロードし、ファイルからいくつかの値を読み取ってデータベースにインポートする必要があるというものです。
いくつかの理由で、ファイルをディスクに保存できません。保存する理由もありません。
では、FileUpload ストリームから Excel ファイルを読み取る方法を知っている人はいますか?
ストリームから Excel ファイルを読み取る方法が必要です。ADO.NET のやり方ではうまくいかないようです。
シナリオは、ユーザーが FileUpload を介してファイルをアップロードし、ファイルからいくつかの値を読み取ってデータベースにインポートする必要があるというものです。
いくつかの理由で、ファイルをディスクに保存できません。保存する理由もありません。
では、FileUpload ストリームから Excel ファイルを読み取る方法を知っている人はいますか?
私は自分で問題の解決策を見つけたようです。
http://www.codeplex.com/ExcelDataReader
このライブラリはうまく機能しているようで、Excel ファイルを読み取るにはストリームが必要です。
ExcelDataReader reader = new ExcelDataReader(ExcelFileUpload.PostedFile.InputStream);
SpreadsheetGearはそれを行うことができます:
SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromStream(stream);
無料評価版でお試しいただけます。
免責事項: 私は SpreadsheetGear LLC を所有しています
Infragisticsには、ストリームから Excel ファイルを読み取ることができるExcel コンポーネントがあります。
ここのプロジェクトで使用していますが、うまく機能します。
また、オープン ソースのmyXls コンポーネントは、これをサポートするように簡単に変更できます。XlsDocument コンストラクターは、ファイル名で指定されたファイルからの読み込みのみをサポートしますが、FileStream を作成してから Stream を読み取ることで機能するため、ストリームからの読み込みをサポートするように変更することは簡単です。
編集: 解決策を見つけたようですが、コンポーネントのソース コードを更新して、ストリームから直接 Excel ファイルを読み取れるようにしたことをお知らせしたいと思います。:-)