ExcelLibrary和EPPlus在打开networking文件时抛出exception
我有一个服务器上的Excel文件。 我用一个如下所示的path访问它:“\\ Server \ folder \ file.xlsx”。
我可以从办公室的Excel API读取它,但由于我无法在我的服务器上安装Office,所以我需要避免这种依赖性。
我尝试使用一些其他库,但它不工作…
我试图用EPPLUS打开文件,但是当我尝试打开工作簿时,我有一个exception说“此操作不支持相对URI”…我尝试使用ExcelLibrary,但是出现了内存不足exception。 。
//EXCELLIBRARY Workbook book = Workbook.Load(_filename); //EPPLUS FileInfo file = new FileInfo(_filename); ExcelPackage pack = new ExcelPackage(file); ExcelWorksheet sheet = pack.Workbook.Worksheets[1];
有人有如何解决这个问题的想法?
如果没有,你有另一个图书馆build议? 我不想使用OleDB,并已经尝试过NOPI。 我想要一个库,只需要添加一个DLL的引用。 我需要打开Excel 2010文件。 我还需要能够确定表单中使用的范围是什么,并获取数组的值。 这里是我用过的Office API的代码。
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();
整天search并尝试了许多图书馆之后,我终于find了一些有用的工具,Koogra。
http://sourceforge.net/projects/koogra/?_test=b
Workbook wb = new Workbook(_filename); _worksheet = wb.GetWorksheet(0); //You can do the same to find LastCol, LastRow or FirstCol uint firstRow = _worksheet.CellMap.FirstRow string aHeader = (string)_worksheet.GetRow(firstRow).GetCell(3);
这不是networkingpath的样子。 应该是这样的
\\server\path\to\file\image.jpg
注意开始时的双斜线。 只有一个斜杠就会变成一个相对于当前驱动器的path(这是错误告诉你的)。
在我看来,FileInfo的构造函数抛出了这个exception,你确定EEPlus正在抛出它吗? 因为在NT系列FileInfo构造函数调用Path.NormalizeSlow和该方法抛出exception:
throw new ArgumentException(Environment.GetResourceString("Argument_PathUriFormatNotSupported"));
尝试新的Epplus库4.1
这个版本中的大部分bug都是固定的