Excel SaveAs更改日期格式

时间:2014-03-18 13:39:20

标签: c# excel date

我正在尝试将excel文件另存为csv,但它会将日期从dd / mm / yyyy更改为mm / dd / yyyy。是否有另外一个参数我可以添加到save as指令来实现这个目的?

excelWorkbook.SaveAs(newFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);

我尝试添加Local:= true但这不起作用。

任何建议将不胜感激。单元格格式为英国日期。

提前致谢

3 个答案:

答案 0 :(得分:1)

谢谢Meehow - 我遇到了同样的问题,我使用SaveAs函数将XLSX文件转换为CSV,但它也转换了从英国格式发现的任何单元格值 - >美国格式。

改变以下工作

OLD:     XlSaveAsAccessMode.xlExclusive

NEW:     XlSaveAsAccessMode.xlNoChange

完整代码:     xlWorkbook.SaveAs(toCSVFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, false, Type.Missing, Type.Missing, Type.Missing);

答案 1 :(得分:0)

我知道这很老了,但这对我有用:

workbook.SaveAs(csvFileName, Excel.XlFileFormat.xlCSVMSDOS, Type.Missing, Type.Missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, false, Type.Missing, Type.Missing, true);
workbook.Close(false);

请注意使用带有参数“ false”的Close(不要在关闭时保存)。原来关闭时保存已恢复为美国日期格式。

答案 2 :(得分:-1)

将日期存储为" text"用宏:没有"格式化"在CSV中,所以日期以相同的方式显示。