【发布时间】:2010-03-08 12:43:27
【问题描述】:
我正在使用 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 被声明为字符串,因为它可能并不总是一个日期。它可能是日期、日期、用户名、组名等,具体取决于我们如何对数据进行分组/排序。也可能是几天的选择。
经过一段时间的试验,我发现解决这个问题的唯一方法是使用 yyyy/mm/dd 的通用日期格式。但是,这可能会产生其他集成问题。所以我希望有办法强制执行 dd/mm/yyyy 格式,欢迎提出任何建议。
【问题讨论】: