Ich habe eine Excel-Datei auf einem Server. Ich greife darauf mit einem Pfad wie folgt zu: "\\ Server \ folder \ file.xlsx".ExcelLibrary und EPPlus werfen Ausnahmen beim Öffnen der Netzwerkdatei
Ich konnte es mit der Excel-API aus dem Büro lesen, aber da ich Office auf meinem Server nicht installieren kann, muss ich diese Abhängigkeit vermeiden.
ich einige andere Bibliotheken versucht, mit, aber es funktioniert nicht ...
Ich habe versucht, die Datei mit EPPLUS öffnen, aber ich habe eine Ausnahme sagen: „Dieser Vorgang ist für eine relative URI unterstützt“, wenn ich versuchen, die Arbeitsmappe zu öffnen ... ich mit ExcelLibrary versucht, aber ich habe nicht genügend Arbeitsspeicher Ausnahme ...
//EXCELLIBRARY
Workbook book = Workbook.Load(_filename);
//EPPLUS
FileInfo file = new FileInfo(_filename);
ExcelPackage pack = new ExcelPackage(file);
ExcelWorksheet sheet = pack.Workbook.Worksheets[1];
Hat jemand eine Idee hat, wie dieses Problem zu lösen?
Wenn nicht, müssen Sie eine andere Bibliothek vorschlagen? Ich möchte OleDB nicht verwenden und habe bereits NOPI ausprobiert. Ich möchte eine Bibliothek, die nur einen Verweis auf eine DLL hinzufügen muss. Ich muss Excel 2010 Dateien öffnen. Ich muss auch in der Lage sein zu bestimmen, was der verwendete Bereich im Blatt ist und ein Array mit den Werten zu erhalten. Hier ist der Code, den ich verwendet und mit der Office-API gearbeitet habe.
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();
Ja, es ist wie Das. Ich schrieb zwei Schrägstriche, aber es zeigte nur einen. Ich habe meinen Post bearbeitet, ich musste drei schreiben, um zwei zu zeigen ... – Amaranth