NPOI xls:计算的结束索引 (x) 超出允许范围 (y..y+2)

NPOI xls: calculated end index (x) is out of allowable range (y..y+2)

我在写入新创建的文件时总是遇到异常。即使提供的 sheet 为空,我也会收到此异常。没有 sheets 的工作簿可以毫无问题地保存。

此异常显示为空 sheet。

Additional information: calculated end index (1932) is out of allowable range (1908..1910)

我正在使用 NOPI.dll ver.2.1.3.1 http://npoi.codeplex.com/ 我尝试创建的文件是 .xls (Excel 97-2003)

filePath 在下面的代码中有一个值 @"C:\TB\Report.xls"

我的代码

public void Generate()
    {
        HSSFWorkbook newWorkBook = new HSSFWorkbook();
        ISheet newSheet = newWorkBook.CreateSheet("Main");
        newWorkBook.Add(newSheet); 

        using (FileStream fileOut = new FileStream(filePath, FileMode.Create))
        {
            newWorkBook.Write(fileOut);
        }
    }

文件已创建,但它是空的。

当使用 sheet 创建具有行和列的 xls 时,结果是相同的,除了异常中的数字更高。

问题出在使用 ISheet 而不是 HSSFSheet。文档中显示的示例使用了 ISheet,但它不正确。

正确代码:

public void Generate()
{
    HSSFWorkbook newWorkBook = new HSSFWorkbook();
    HSSFSheet newSheet = (HSSFSheet)newWorkBook.CreateSheet("Main");

    var headerRow = newSheet.CreateRow(0);
    var headerCell = headerRow.CreateCell(0);
    headerCell.SetCellValue("Something");

    using (FileStream fileOut = new FileStream(filePath, FileMode.Create))
    {
        newWorkBook.Write(fileOut);
    }
}