我正在使用NPOI dll导出excel文件中的数据。
数据是金额类型,必须以货币格式显示:$#、###.##,也以日期格式显示。
我已经将格式添加到单元格中。但是数据不会以货币/日期格式导出到Excel
有什么答案吗?
下面是我的代码:
我尝试了在谷歌搜索中找到的所有类型的currecy格式,但都不起作用,它仍然作为文本导出到Excel,而不是货币/日期类型
public enum StyleDataTypes { NotDeclared = 0, Money = 1, Percentage = 2, Number = 3, Date = 4 }
public class ColumnInfoAttribute : Attribute
{
private string displayNoValue = "";
public string DisplayNoValue
{
get { return displayNoValue; }
set { displayNoValue = value; }
}
private StyleDataTypes styleType = StyleDataTypes.NotDeclared;
public StyleDataTypes StyleType
{
get { return styleType; }
set { styleType = value; }
}
}
IDataFormat dataFormatCustom = sheet.Workbook.CreateDataFormat();
ICellStyle dateStyle = sheet.Workbook.CreateCellStyle(); //date
dateStyle.DataFormat = dataFormatCustom.GetFormat("yyyy/MM/dd HH:mm:ss");
ICellStyle amountStyle = sheet.Workbook.CreateCellStyle(); //money
amountStyle.DataFormat = dataFormatCustom.GetFormat("$#,##0.00");
StyleDataTypes dataType = ((ColumnInfoAttribute)attr).StyleType;
switch (dataType)
{
case StyleDataTypes.Date:
cell.CellStyle.DataFormat = dateStyle.DataFormat;
break;
case StyleDataTypes.Number:
cell.SetCellType(CellType.Numeric);
break;
case StyleDataTypes.Percentage:
cell.CellStyle.DataFormat = percentagesStyle.DataFormat;
break;
case StyleDataTypes.Money:
cell.CellStyle.DataFormat = amountStyle.DataFormat;
break;
}在Excel字段中,它显示为文本字段,而不是我所做的自定义字段。
发布于 2019-01-21 00:39:14
您不是首先创建DataFormat。
尝试此示例
ICellStyle amountStyle = sheet.Workbook.CreateCellStyle(); //money
amountStyle.DataFormat = sheet.Workbook.CreateDataFormat().GetFormat(.GetFormat("$#,##0.00");https://stackoverflow.com/questions/54276546
复制相似问题