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);
}
}
我在写入新创建的文件时总是遇到异常。即使提供的 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);
}
}