我正在使用NPOI v1.2.3导出网格,并且无法使单元格格式化工作.
我有一个类将对象列表导出到XLS文件.为每个对象创建一行,并为每个已配置的属性添加一个单元格.可以在每个属性级别上设置单元格数据格式.
我读过你不应该为每个单元格创建一个新的样式.我无法对我的样式进行硬编码,因为我的导出器需要支持任何类.相反,我编写了一个小缓存系统,只有在尚未为当前单元格格式创建的情况下才创建新的CellStyle.
不幸的是,这仍然没有解决问题.格式未在最终的XLS文件中正确应用.在我的测试用例中,XLS中的大多数单元格都使用"日期"格式,即使只有几列是日期.但是,第一列正确使用自定义格式.没有单元格设置为文本,即使它应该是大多数单元格.
我究竟做错了什么?
码
下面的"AddRecords"方法用于添加数据行(页眉和页脚行分别添加).最后一段代码是延迟加载CellStyles的方法.
private void AddRecords( Sheet sheet, IList<T> records )
{
foreach( var record in records )
{
// append row
var row = sheet.CreateRow ( sheet.LastRowNum + 1 );
// iterate through all configured columns
foreach ( var column in GetColumns() )
{
// append cell
Cell cell = row.CreateCell ( row.LastCellNum == -1 ? 0 : row.LastCellNum );
// get the property value of the column from the record
object …Run Code Online (Sandbox Code Playgroud)