NPOI导出excel表格某些单元格或者列报未将对象引用设置到对象的实例

本文针对Excel操作中出现的常见异常进行了解析,并提供了两种实用的解决方法:一是调整Excel模板;二是修改单元格创建方式。文章同时反思了错误分析过程中的一些误区。

如题问题。作为一个新手实在很费解为什么会存在这种问题。百度了半天,所有人的回答都是帮你分析错误,但是大部分都是一些人指点江山的样子但是就是没有给你解决方案,估计混分狗吧。

不过还是有些良心麻油愿意分享他们的知识的。在这些的解决方案里我总结一下:

第一:模板用错了(本人就是这种情况,但是打死不去检查感觉自己就是没写错)

第二:当前行或者列不存在(这种人就是脑残,比如说我第八列第十列都没有报错,就报了第九列的异常,还跟我讲不存在?说就说了你倒是给个解决方案啊)

第三:忘记了



这些其实一开始都是不符合我的要求的(虽然我真的是模板用错,大家引以为戒)。考虑到应该是excel表格的问题。在期间我自己想了两个办法,问题也是可以解决的。

第一:可以将excel表中的报异常的单元格或者行删除重新添加。(这种方法貌似成功率不太高)

第二个就是不要 sheet.CreateRow().CreateCell().SetCellValue(),我们用sheet.CreateRow ().CreateCell().SetCellValue()。里面的行索引和列索引相同就可以了。


### C# 使用 NPOI导出 Excel设置单元格样式的示例 #### 创建并初始化工作簿对象 为了使用 NPOI 导出 Excel 文件,首先需要创建 `HSSFWorkbook` 或者 `XSSFWorkbook` 对象来表示整个 Excel 文档。对于不同版本的 Excel 文件,选择不同的类: - 如果目标是 `.xls` 格式,则应使用 `HSSFWorkbook` 类[^3]。 - 若目标为 `.xlsx` 格式,则需采用 `XSSFWorkbook`。 ```csharp // 创建一个新的Excel文档(适用于.xls) var excelBook = new HSSFWorkbook(); ``` #### 定义和配置单元格样式 通过创建工作簿之后,可以利用该对象进一步定义所需的单元格样式。这一步骤非常重要,因为默认情况下不会有任何预设格式应用于新创建的工作表中的数据。因此,在向单元格添加内容之前,建议先准备好必要的样式规则。 ```csharp // 创建一个用于自定义外观的新样式实例 ICellStyle cellStyle = excelBook.CreateCellStyle(); // 设置边框线型 cellStyle.BorderBottom = BorderStyle.Thin; cellStyle.BorderLeft = BorderStyle.Thin; cellStyle.BorderRight = BorderStyle.Thin; cellStyle.BorderTop = BorderStyle.Thin; // 设定水平居中对齐方式 cellStyle.Alignment = HorizontalAlignment.Center; // 垂直方向上的中心位置排列 cellStyle.VerticalAlignment = VerticalAlignment.Center; ``` #### 控制数字格式化 当处理涉及数值类型的字段,可能希望指定特定的小数位精度或其他形式的数据呈现模式。可以通过修改 `DataFormat` 属性实现这一点。 ```csharp // 获取内置格式或注册新的格式字符串 IDataFormat format = excelBook.CreateDataFormat(); cellStyle.DataFormat = format.GetFormat("0.00"); // 保留两位小数 ``` #### 调整行高与列宽 为了让最终生成的表格看起来更加美观易读,还可以调整每一行列以及各列之间的间距大小。注意这里的单位转换关系:行高的设定是以 twips (1/20th of a point) 计算;而列宽则是基于字符宽度的比例因子计算得出。 ```csharp // 新建一行并将高度设为标准字体下的合适尺寸 IRow row = sheet.CreateRow(rowIndex); row.HeightInPoints = 18f; // 行高设置成18磅 // 修改某列的宽度使其适应较长的文字输入 sheet.SetColumnWidth(columnIndex, 50 * 256); // 列宽设置成大约等于50个字符长度 ``` 以上就是关于如何在 C# 中运用 NPOI 库完成基本的 Excel 文件导出功能的同定制单元格样式的介绍。这些技巧可以帮助开发者更好地掌控输出文件的质量,并满足业务逻辑方面的要求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值