ClosedXML导出数据设置为具有特定日期格式的Excel

时间:2018-06-05 17:59:31

标签: c# closedxml

我正在将一个DataSet导出到通过在我的C#程序中运行SQL脚本生成的excel。 DataSet正确地将某些列存储为日期时间,但据我所知,它不存储格式信息。然后看来,在调用时给出格式化

ws.FirstCell().InsertTable(dt, false);

这给了它默认格式dd / mm / yyyy。不幸的是,我不能只使用ClosedXML选择整个范围并更改数字格式,因为列包含非日期数字。

我想我可以查看我的数据集,查找哪些列是日期时间,然后使用closedXML相应地格式化这些列。我想有必要有一个更好的方法。有没有人知道用封闭的XML(或甚至互操作)做这个的简单选择?我无法找到任何相关信息。

编辑:

看来这是目前唯一的方式......如果有人需要它(并设法找到这篇文章),它很容易做到:

                //select which columns are dates and change default format
                int colNum = 1;  
                foreach (DataColumn col in dt.Columns)
                {
                    if (col.DataType == typeof(System.DateTime))
                    {
                        Console.WriteLine(colNum);
                        ws.Column(colNum).Style.NumberFormat.Format = "mmm-dd-yyyy";
                    }
                    colNum++;
                }
                ws.FirstCell().InsertTable(dt, false);

0 个答案:

没有答案