C# 带有“模板”的NPOI获取ReadingNotSupportedException
我制作了一个小包装类,它保存了NPOI Excel旧格式XLS,1997-2003。代码类似于:C# 带有“模板”的NPOI获取ReadingNotSupportedException,c#,excel,npoi,C#,Excel,Npoi,我制作了一个小包装类,它保存了NPOI Excel旧格式XLS,1997-2003。代码类似于: public class NpoiExcelDriver { /// <summary> /// Underlying workbook to work with. /// </summary> private HSSFWorkbook workbook; // Open an XLS file specified by file n
public class NpoiExcelDriver {
/// <summary>
/// Underlying workbook to work with.
/// </summary>
private HSSFWorkbook workbook;
// Open an XLS file specified by file name.
public void Open(string fileName)
{
using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
this.workbook = new HSSFWorkbook(file, true);
}
}
// put data etc
public void PutData() {...}
// Save the workbook under specified file name.
public void SaveAs(string fileName)
{
using (FileStream fff = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
this.workbook.Write(fff);
}
}
}
当我运行此代码时,我得到一个异常:
NPOI.dll中发生了类型为“NPOI.HPSF.ReadingNotSupportedException”的第一次意外异常
我不知道我做错了什么——我检查了其他的例子,这些例子似乎也做了同样的事情,但没有用。正如我在ASP.NET示例中看到的那样,我甚至尝试编写MemoryStream,但我遇到了同样的问题
如果我自己创建工作簿,然后尝试保存它,它工作正常
有什么建议吗?请仔细检查xls文件是否为真正的Excel文件。用记事本打开它。有时,它是由HTMLIn general编写的一个伪文件。该文件是我保存为Excel2003的文件
NpoiExcelDriver output = new NpoiExcelDriver();
output.Open(@"C:\Temp\Test.xls");
output.PutData(1, 2, 1, "Someone");
output.PutData(1, 2, 2, "Was");
output.PutData(1, 2, 3, "Here");
output.SaveAs(@"C:\Temp\Test2.xls");