C# 带有“模板”的NPOI获取ReadingNotSupportedException

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

我制作了一个小包装类,它保存了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 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");