gpt4 book ai didi

excel - 自动将 Xls 转换为 CSV

转载 作者:行者123 更新时间:2023-12-04 21:15:55 25 4
gpt4 key购买 nike

我正在使用 stackoverflow 上的以下 VBS 脚本将 xls 转换为 csv。它工作正常。我想用底部的批处理文件运行它。我不知道如何实现我想要的。批处理文件为 csv 文件提供与 xls 文件相同的名称。因为 xls 文件中有两个工作表,所以我需要为每个 xls 文件生成两个 csv

if WScript.Arguments.Count < 2 Then
WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(1))
oBook.SaveAs WScript.Arguments.Item(2), 6

oBook.Close False
oExcel.Quit
WScript.Echo "Done"

这是批处理文件
FOR /f "delims=" %%i IN ('DIR *.xlsx /b') DO ExcelToCSV.vbs "%%i" "%%i.csv"

我需要传入 2 个输出 .csv 文件名,一个应该是 nnnnn_1.csv,另一个应该是 nnnnn_2.csv,以说明 xls 文件中的 2 个工作表。

谢谢你的帮助

最佳答案

与上述 Scott 的回答类似,我可能会将脚本更改为以这种方式工作,因为此更改仅适用于给定工作簿中的所有工作表,并将每个工作表输出到 .csv无需担心是否有 1、2 或 10 张文件。

If WScript.Arguments.Count < 2 Then
WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
Wscript.Quit
End If

Dim oExcel
Set oExcel = CreateObject("Excel.Application")

Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
Dim oNewBook
shIndex = 1 ' start with 1
For shIndex = 1 To oBook.Worksheets.Count
oBook.Worksheets(shIndex).Copy
Set oNewBook = oExcel.ActiveWorkbook
oNewBook.SaveAs Replace(WScript.Arguments.Item(1),".csv","_" & shIndex & ".csv"), 6
oNewBook.Close False
Next
oBook.Close False
oExcel.Quit
WScript.Echo "Done"

关于excel - 自动将 Xls 转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com