使用NPOI导出Excel ICell调用过多 内存溢出
datagridview一共有七十多列、六万多行 进行到四万多行的时候就提示'引发类型为“System.OutOfMemoryException”的异常。'
求高手帮忙看下
private void button3_Click(object sender, EventArgs e)
{
if (dgExcel.Rows.Count > 0)
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "xls文件|*.xls|所有文件|*.*";
save.FileName = "Demo.xls";
if (save.ShowDialog() == DialogResult.OK)
{
int irow = dgExcel.Rows.Count;
int n = (irow + 30000 - 1) / 30000;
using (HSSFWorkbook workbook = new HSSFWorkbook())
{
for (int i = 1; i <= n; i++)
{
if (i == n)
OutIntoExcel(workbook, i, i * 30000 - 30000, irow - 1);
else
OutIntoExcel(workbook, i, i * 30000 - 30000, i * 30000 - 1);
}
FileStream file = new FileStream(save.FileName, FileMode.Create);
workbook.Write(file);
file.Close();
}
MessageBox.Show("数据导出成功,请查看!", "数据导出", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
public void OutIntoExcel(HSSFWorkbook workbook, int i, int rowf, int rowt)
{
ISheet sheet1 = workbook.CreateSheet("Sheet" + i.ToString());
IRow row;
ICell cell;
int rows = rowf;
for (int rowIndex = 0; rowIndex < 30001; rowIndex++)
{
row = sheet1.CreateRow(rowIndex);
for (int colIndex = 0; colIndex < dgExcel.Columns.Count; colIndex++)
{
cell = row.CreateCell(colIndex);
if (rowIndex == 0)
cell.SetCellValue(dgExcel.Columns[colIndex].HeaderText);
else
cell.SetCellValue(dgExcel[colIndex, rows].Value.ToString());
}
if (rowIndex != 0)
rows += 1;
if (rows == rowt + 1)
break;
}
}
相关推荐
C# NPOI导出Excel,Words转PDF
首先,让我们关注C# NPOI导出Excel的部分。NPOI提供了API,使得开发者可以轻松地创建、读取和修改Excel工作簿。通过使用NPOI,你可以创建新的工作表、填充数据、设置格式、应用公式等。
NPOI实战指南:C#/.NET高效读写Excel,绕过COM依赖
在工业上位机与业务系统开发中,Excel操作是高频需求,但传统Office COM组件在服务器部署时常遇到权限、版本冲突等问题。NPOI作为Apache POI的.NET移植版,以纯托管方式直接读写内存中的Workbook,无需安装Office,同时兼容.xls与.xlsx格式,支持公式、样式、合并单元格等复杂特性。基于NPOI,开发者可以快速实现报表导出、数据批量导入、模板填充等典型C#/.NET工程场景。本文从基础读写出发,逐步讲解样式设置、DataTable转换、模板占位符替换等实战技巧,并总结行数限
C#操作Excel必备:NPOI库从安装到实战完整指南(附常见报错处理)
本文提供了C#操作Excel的NPOI库从安装到实战的完整指南。详细介绍了环境配置、核心对象模型、数据读写实战,并重点剖析了常见的异常报错及其解决方案,帮助开发者高效、稳定地处理Excel文件,规避常见开发陷阱。
Winform中通过NPOI导出Excel的三种方式HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook示例代码.zip
本示例将详细介绍在WinForm应用中使用NPOI导出Excel的三种主要方式:HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook。1.
NPOI导入导出Excel源文件,自己整理的,非常好用
**使用注意事项** - 文件路径应正确无误,避免出现IOException。 - 对于大型Excel文件,应考虑分批读取或使用内存效率更高的流式处理,以防止内存溢出。


