我想让我的应用程序找到一个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拒绝打开它,当我尝试进一步冒险时,我的应用程序也不会。
是否有人有解决方案/变通办法?
7条答案
按热度按时间sqxo8psd1#
对于那些希望使用Interop而不是外部库的用户,您可以简单地执行以下操作:
Workbook.SaveAs的第二个参数决定档案的真实格式。您应该让副档名符合该格式,这样Excel就不会抱怨损毁。您可以在MSDN上查看类型清单及其意义。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlfileformat.aspx
与往常一样,如果此功能是针对服务器环境设计的,请牢记Microsoft的注意事项。在这种情况下,互操作可能不是解决问题的方法:
http://support.microsoft.com/kb/257757
rqdpfwrv2#
我将在CSV文件中进行解析,并使用此命令写出一个Excel文件:https://github.com/JanKallman/EPPlus
dfuffjeb3#
这段程式码应该会开启您要的档案,并将它储存成不会损毁的格式。
1.重命名文件
1.创建Excel.Application示例
1.开启档案
1.将保存为所需格式
1.关闭
abithluo4#
我建议使用以下技术:
1.通过kbcsv扩展从csv创建数据表。
1.使用eppplus库及其LoadFromDataTable创建有效的xlsx文件(https://github.com/JanKallman/EPPlus)
1.已完成!
优点:
ekqde3dh5#
试试这个类;接受任何带有任何分隔符(包括制表符)的CSV或TXT文件,并转换为Excel(.xls)
实施例:
wlsrxk516#
我推荐Closed XML,它是一个OpenXMLSDK的 Package 器。看看他们的例子。创建一个.xlsx文件非常容易。
7eumitmz7#