我有一个像这样的 .xlsx 文件:
sample.xlsx:
Heading C1 C2,01,02 C3 C4
R1 1 4 7 10
R2 2 5 8 11,1
R3 3 6 9,0 12
我希望将sample.xlsx文件转换为Output.csv文件[以竖线分隔]。
请注意,我不想要任何双引号"C2,01,02"。
Output.csv:
Heading|C1|C2,01,02|C3|C4
R1|1|4|7|10
R2|2|5|8|11,1
R3|3|6|9,0|12
我知道如何通过以下手动步骤生成Output.csv:
进入控制面板 -> 区域和语言 -> 附加设置 -> 更新列表分隔符字段,将其更改为管道“|”。
打开sample.xlsx -> 另存为 -> 在下拉列表中选择保存类型CSV(逗号分隔)(*.csv)。
但是我不想手动操作。我想使用命令行实现相同的输出。为此,我参考了这篇帖子: 在命令行上将XLS转换为CSV
代码如下:
这个csv文件非常好用,唯一的问题是它会生成逗号分隔的csv而不是管道分隔的。
要运行上面的代码,请输入以下命令:XlsToCsv.vbs [sourcexlsFile].xls [Output].csv。if WScript.Arguments.Count < 2 Then WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>" Wscript.Quit End If csv_format = 6 Set objFSO = CreateObject("Scripting.FileSystemObject") src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0)) dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1)) Dim oExcel Set oExcel = CreateObject("Excel.Application") Dim oBook Set oBook = oExcel.Workbooks.Open(src_file) oBook.SaveAs dest_file, csv_format oBook.Close False oExcel.Quit
我试图将csv_format = 6的值更改为许多其他值,如1、2、3等等。但它没有生成以管道分隔的csv文件。
请帮忙解决问题。
提前感谢您的帮助。