首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NPOI dll在excel导出中添加货币格式-不起作用

使用NPOI dll在excel导出中添加货币格式-不起作用
EN

Stack Overflow用户
提问于 2019-01-20 20:41:54
回答 1查看 960关注 0票数 0

我正在使用NPOI dll导出excel文件中的数据。

数据是金额类型,必须以货币格式显示:$#、###.##,也以日期格式显示。

我已经将格式添加到单元格中。但是数据不会以货币/日期格式导出到Excel

有什么答案吗?

下面是我的代码:

我尝试了在谷歌搜索中找到的所有类型的currecy格式,但都不起作用,它仍然作为文本导出到Excel,而不是货币/日期类型

代码语言:javascript
复制
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字段中,它显示为文本字段,而不是我所做的自定义字段。

EN

回答 1

Stack Overflow用户

发布于 2019-01-21 00:39:14

您不是首先创建DataFormat。

尝试此示例

代码语言:javascript
复制
ICellStyle amountStyle = sheet.Workbook.CreateCellStyle(); //money
amountStyle.DataFormat = sheet.Workbook.CreateDataFormat().GetFormat(.GetFormat("$#,##0.00");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54276546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档