我正在尝试将excel文件另存为csv,但它会将日期从dd / mm / yyyy更改为mm / dd / yyyy。是否有另外一个参数我可以添加到save as指令来实现这个目的?
excelWorkbook.SaveAs(newFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV);
我尝试添加Local:= true但这不起作用。
任何建议将不胜感激。单元格格式为英国日期。
提前致谢
答案 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中,所以日期以相同的方式显示。