之前也使用过NPOI导出excel,这次是因为在导出的excel里新增了几个列,正好超出了255的限制,所以又要改了。
今天主要出了4个问题:
1. Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV')
2.c# npoi XSSFWorkbook无法访问已关闭的流。
3.由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
4.错误提示: Excel在“春天Excel2007.xlsx”中发现不可读取内容。是否恢复工作簿的内容?如果信任此工作簿的来源,请单击“是”。 单击“是”后:Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。
经历了一上午,不断百度,进行了很多次尝试,也经历了几次项目的平衡,所以做一个总结。
今天主要出了4个问题:
1. Invalid column index (256). Allowable column range for BIFF8 is (0..255) or ('A'..'IV')
2.c# npoi XSSFWorkbook无法访问已关闭的流。
3.由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
4.错误提示: Excel在“春天Excel2007.xlsx”中发现不可读取内容。是否恢复工作簿的内容?如果信任此工作簿的来源,请单击“是”。 单击“是”后:Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃。
经历了一上午,不断百度,进行了很多次尝试,也经历了几次项目的平衡,所以做一个总结。
之前的导出是这样的,使用hssf方法,代码如下:
public static MemoryStream RenderToExcel(DataTable table)
{
MemoryStream ms = new MemoryStream();
using (table)
{
IWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet();
IRow headerRow = sheet.CreateRow(0);
foreach (DataColumn column in table.Columns)
{
var headCell = headerRow.CreateCell(column.Ordinal);
headCell.SetCellValue(column.Caption);
}
int rowIndex = 1;
foreach (DataRow row in table.Rows)
{
IRow dataRow = sheet.CreateRow(rowIndex);
foreach (DataColumn column in table.Columns)
{