我正在使用excel Library打开电子表格并阅读其内容,我在互操作库上使用此库,因为互操作库会导致我希望主持的服务器上的问题。
https://code.google.com/p/excellibrary/
using ExcelLibrary.SpreadSheet;
Stream fileStream = System.IO.File.OpenRead(excelFileName); //FilePath
Workbook book = Workbook.Load(fileStream); //Exception thrown
Worksheet sheet = book.Worksheets[0];
运行代码时,您可以看到文件流加载:
当我走到下一行时,我得到了例外。缓冲区不能为空。
异常后,流阅读器变为canRead false:
答案 0 :(得分:1)
VB.NET代码:
Public Function importSheet(fileName As String) As Boolean
Dim fileStream = System.IO.File.OpenRead(fileName)
Dim book = ExcelLibrary.SpreadSheet.Workbook.Load(fileStream)
Dim sheet = book.Worksheets(0)
'TO DO
Return True
End Function
查找文件夹的权限。
当System.IO库有许多例外时,请查看读/写文件夹和文件权限。
答案 1 :(得分:1)
正如“pornster”所指出的,这里的问题大部分时间都是:
XLS文件的类型为“5.0 / 95”而不是“97-2003”
答案 2 :(得分:0)
您必须指定文件名,而不是流式传输到方法Workbook.Load
,请参见自己link中的示例:
string file = "C:\\newdoc.xls";
// open xls file
Workbook book = Workbook.Load(file);
Worksheet sheet = book.Worksheets[0];
如果它有重载,那么你必须向图书馆作者寻求帮助(看起来像一个bug)。
答案 3 :(得分:0)
我刚创建了一个简单的程序而且我没有得到这个例外,
你能检查一下Excel文件吗?可能是腐败了。
你可以制作一个只是打开这个应用程序的简单程序吗?
string excelFileName = "";
excelFileName = @"E:\Innovation\PAKISTAN.xls";
Stream fileStream = System.IO.File.OpenRead(excelFileName); //FilePath
Workbook book = Workbook.Load(fileStream); //Exception thrown
Worksheet sheet = book.Worksheets[0];
答案 4 :(得分:-1)
您需要路径文件名前面的@
符号。
尝试
excelFileName = string.Format(@"{0}",excelFileName);