我正在使用VBScript将CSV文件转换为xlsx,除了一个表包含长数字(大于15个字符)并且列格式为数字的情况下,该表正常工作。 Excel将15号以上的字符替换为0:
从此:5555555555555556666
为此:5555555555555550000
解决方案是将单元格格式更改为特定列中的文本(顺便说一句,如果更简单,整个表可以是文本)。
我尝试使用
objExcel.columns(2).numberformat= "@"
但是如果我提早完成,那么导入将覆盖它。如果我在导入后执行此操作,则格式将为文本,但数据已损坏。
我发现here并且正在使用的脚本是这样的:
Dim file, WB
With CreateObject("Excel.Application")
On Error Resume Next
For Each file In WScript.Arguments
Set WB = .Workbooks.Open(file)
WB.SaveAs Replace(WB.FullName, ".csv", ".xlsx"), 51
WB.Close False
Next
.Quit
End With
WScript.Echo "Done!"