我正在使用 owc11 创建 Excel 文档。我以 dd/mm/yyyy 格式提供日期。我在代码中做这样的事情:
for (..looping through results..)
{
Range c = EmailStats.putCellValue(sheet, row, 1, val);
c.set_NumberFormat("dd/mm/yyyy");
}
private static Range putCellValue(Worksheet sheet, int row, int col, String val)
{
Range cell = (Range) sheet.Cells[row, col];
cell.set_Value(XlRangeValueType.xlRangeValueDefault, val);
return cell;
}
现在,当我将 val 参数的日期格式设置为“dd/mm/yyyy”或根本不设置时,我得到的行为是从一个月的 1 日到 12 日的 mm/dd/yyyy然后它换回 dd/mm/yyyy。所以 owc11 认为它知道得更好,并交换周围的日期和月份(就像美国格式),当它超过 12 日时,它坚持使用英国格式。
Val 被声明为 String,因为它可能并不总是一个日期。它可能是日期、日期、用户名、组名等,具体取决于我们如何对数据进行分组/排序。也可以是几天的选择。
经过一段时间的试验后,我发现解决这个问题的唯一方法是使用 yyyy/mm/dd 的通用日期格式。但是,这可能会产生其他集成问题。所以我希望有一种方法可以强制执行 dd/mm/yyyy 格式,所以欢迎提出任何建议。
最佳答案
尝试将 val 设置为非字符串。尝试将 val 指定为 DateTime。
cell.set_Value(XlRangeValueType.xlRangeValueDefault, val);
关于c# - 忽略 OWC11 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2401311/