OWC11date格式忽略

我正在使用owc11创build一个Excel文档。 我以dd / mm / yyyy格式提供date。 我在代码中做了这样的事情:

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参数设置date格式为“dd / mm / yyyy”或者根本不设置时,我得到的行为是从一个月的第一天到第十二天的mm / dd / yyyy交换回dd / mm / yyyy。 所以owc11认为,它知道更好和交换周围的日子和月份(如在美国的格式),当它是第二十二date坚持英国的格式。

Val被声明为String,因为它可能并不总是一个date。 这可能是一个date,一天,一个用户名,组名等,这取决于我们如何对数据进行分组/sorting。 也可能是几天的select。

经过一段时间的试验,我发现解决这个问题的唯一方法是使用yyyy / mm / dd的通用date格式。 但是,这可能会造成其他集成问题。 所以我希望能有办法强制dd / mm / yyyy的格式,所以欢迎大家提出任何build议。

尝试将val设置为不是string。 尝试将val分配为DateTime。

 cell.set_Value(XlRangeValueType.xlRangeValueDefault, val);