@OdedDvir מ-ד-ה-י-ם
תוספת קטנה לקוד
(בקוד שהבאת, במידה ויש יותר מגליון אחד בקובץ xlsx, מומר הגליון הפעיל בלבד [לא הראשון])
בקוד הזה במידה ויש יותר מגליון אחד
נוצר קובץ CSV עבור כל גליון
excelcsvconvertor.cmd
@echo off
if /i "%~2"=="csv" goto TryConvert
if /i "%~2"=="xlsx" goto TryConvert
echo Unsupported output format specified: %2
exit /b
:TryConvert
echo Converting file %1 to %2 format, please wait...
cscript /nologo "%~dp0ExcelCsvConvertorScript.vbs" "%~dpnx1" "%~n1" %2
echo Done!
excelcsvconvertorscript.vbs
If WScript.Arguments.Count <> 3 Then
WScript.Echo "Error: invalid number of arguments specified." & vbNewline
WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFileName> <OutputFormat>" & vbNewline
WScript.Echo "Example: ExcelCsvConvertor input.xlsx output.csv csv"
WScript.Quit
End If
InputFileName = WScript.Arguments.Item(0)
OutputFileName = WScript.Arguments.Item(1)
OutputFormat = LCase(WScript.Arguments.Item(2))
OutputFolder = Left(InputFileName, InStrRev(InputFileName, "\"))
Select Case OutputFormat
Case "csv"
XlFileFormatValue = 6
OutputFileExtension = ".csv"
Case "xlsx"
XlFileFormatValue = 51
OutputFileExtension = ".xlsx"
Case Else
WScript.Echo "Unsupported output format specified: " & OutputFormat
WScript.Quit
End Select
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(InputFileName)
For Each objWorksheet In objWorkbook.Worksheets
objWorksheet.SaveAs OutputFolder & OutputFileName & "_" & Replace(objWorksheet.Name, " ", "") & OutputFileExtension, XlFileFormatValue
Next
objWorkbook.Close False
objExcel.Quit
הערה: נערך ע"י בינה מלאכותית, אבל נבדק ועובד תקין