我正在将一个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);