我希望我的应用程序能够找到 csv excel 文件并将其转换为 .xlsx 文件。
这是我目前正在做的;
var fileName = @"Z:\0328\orders\PurchaseOrder.csv";
FileInfo f = new FileInfo(fileName);
f.MoveTo(Path.ChangeExtension(fileName, ".xlsx"));
var Newfile = @"Z:\0328\orders\PurchaseOrder.xlsx";
现在这有效。它将文件扩展名更改为我想要的格式。但是,该文件然后变得“损坏”或者至少 Excel 拒绝打开它,当我尝试进一步冒险时我的应用程序也不会。
有没有人有解决方案/解决方法?
最佳答案
对于那些想要使用 Interop 而不是外部库的人,您可以简单地这样做:
Application app = new Application();
Workbook wb = app.Workbooks.Open(@"C:\testcsv.csv", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wb.SaveAs(@"C:\testcsv.xlsx", XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wb.Close();
app.Quit();
Workbook.SaveAs 的第二个参数决定了文件的真实格式。您应该使文件扩展名与该格式相匹配,这样 Excel 就不会提示损坏。您可以在 MSDN 上查看类型列表及其含义。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlfileformat.aspx
与往常一样,如果此功能旨在用于服务器环境,请牢记 Microsoft 的注意事项。在这种情况下,互操作可能不是可行的方法:
关于c# - 将 Excel 文件从 .csv 转换为 .xlsx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732343/