サーバー上にExcelファイルがあります。「\\Server\ folder\file.xlsx」のようなパスでアクセスします。
OfficeからExcelAPIで読み取ることができましたが、サーバーにOfficeをインストールできないため、この依存関係を回避する必要があります。
他のライブラリを使用してみましたが、機能しません...
EPPLUSでファイルを開こうとしましたが、ブックを開こうとすると「この操作は相対URIではサポートされていません」という例外があります... ExcelLibraryで試しましたが、メモリ不足の例外があります。 。
//EXCELLIBRARY
Workbook book = Workbook.Load(_filename);
//EPPLUS
FileInfo file = new FileInfo(_filename);
ExcelPackage pack = new ExcelPackage(file);
ExcelWorksheet sheet = pack.Workbook.Worksheets[1];
誰かがこれを解決する方法についてアイデアを持っていますか?
そうでない場合は、提案する別のライブラリがありますか?OleDBを使用したくないので、すでにNOPIを試しました。dllへの参照を追加するだけでよいライブラリが必要です。Excel2010ファイルを開く必要があります。また、シートで使用されている範囲を特定し、値を含む配列を取得できる必要があります。これが私がOfficeAPIで使用して使用したコードです。
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Open(_filename, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
_range = (System.Array)xlWorkSheet.UsedRange.Value2;
_headers = GetHeaders(_range);
_lastRow = xlWorkSheet.Cells.Find("*", misValue, misValue, misValue, Excel.XlSearchOrder.xlByRows,
Excel.XlSearchDirection.xlPrevious, false, misValue, misValue).Row;
xlWorkBook.Close(false, misValue, misValue);
xlApp.Quit();