EXCEL 轉存CSV之自動執行

更新於 發佈於 閱讀時間約 17 分鐘

目的:

省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合

1,利用vbs 設計程式,執行後,便可轉換 產出csv檔

1.1 vbs程式應用說明

* input file ---由vbs 第一個引數取得 (即變數 src_file 之Excel file name )

* output file---由vbs 第二個引數取得 (即變數名dest_file 之CSV file name )

* 處理流程 :

1.取得引數

2. Open EXCEL

3.OPEN Excel Book

4. Save as CSV file format --- csv file 不存在時會新增csv file,若既存 會詢問是否覆蓋

5.Close

1.2 程式設計如下參考:

REM --vbs for EXCEL save as csv file--------
if WScript.Arguments.Count < 2 Then
WScript.Echo"Please specify the source and the destination files. Usage: ExcelToCsv <source file: excel> <destination file: csv>"
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


2.一次轉換一個EXCEL檔

2.1 於cmd 輸入如下命令,便可自動完成轉換作業

CScript //B excel2csv.vbs inpExcelFName outCSVFName

* 輸入決定兩個引數,便可執行

兩個引數亦可以變數代稱, 如set PARi=ExcelFName;set PARo=CSVFName

2.2上述亦可設計cmd執行檔,執行該cmd便可自動完成轉換作業

REM --cmd for EXCEL 轉成 csv -----------	
del SH.csv
CALL CScript //B excel2csv.vbs SH.xlsx SH.csv
EXIT


3.整批轉換多個EXCEL檔

3.1 設計cmd執行檔,執行該cmd,便可自動完成整個資料夾內所有EXCEL檔之轉換。

日後,資料夾內之EXCEL檔名,或檔案內容,檔案數量之變更追加均無影響,該cmd 仍可正常執行

3.2 實例說明

* input excel file 可將資料夾內複數個excel 檔案,全部取出作轉換

* output CSV file,執行後產出多個CSV檔,並 存放在指定的資料夾內

*出力之csv file ,若既存 會詢問是否覆蓋

BATCH作業為了省略該動作,故設計為csv 可先全部刪除,再讓它全部新增產出

* 本例input file 共31 個Excel檔案,如下

raw-image


* 本cmd 執行後, 新增產出 CSV file 共31 個檔案,如下

raw-image


* 本cmd執行後結果產出之訊息,記錄於 txt file ,檔名: Result_Vol_Xls2Csv.txt ,可供使用者確認,內容如下

* ** Result of excel convert   ** *              2024/07/23 週二 11:25:49.48 	

--------- 執行動作說明 對象檔名 --------
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-偉豪Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-孟陽Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-家苗Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-廖秀玉Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-招治Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-捷女Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-春英Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-林家在Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-林美珠Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-楊雪梨Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-楚玟Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-歐坤一Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-洪王麗珠Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-玉潔Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-王瑛瑛Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-玲慧Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-素梅Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-美玲Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-范美珠Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-趙羅秀英Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-進輝Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-郭秀珍Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-金美娟Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-金菊Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-錦珍Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-陳春香Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-陳禮華Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-陳秀貞Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-雅珶Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-鳳英Y".csv
** already coverted csv file save as C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工\CSV\"衛福部志工服務數-黃敏Y".csv
------------ Convert to csv completed 正常終了 2024/07/23 週二 11:28:19.07


3.3 本cmd檔名: Vol_Xls2Csv.cmd,實例設計如下參考:

@echo off
rem set PAR1=D:\志工\志工EXCEL
set PAR1=C:\Users\admin\Desktop\衛福部志工系統-志工時數\志工
C:
rem D:
cd %PAR1%

echo.
echo *** Convert Excel sheets to csv files ***

IF NOT EXIST %PAR1% ( echo ### ERROR : %PAR1% is not exist
pause & Goto EJob )

::-----vbs執行轉換時,若csv檔名已存在,會跳出視窗,問是否要覆蓋
echo ***
set /p SW="** Do you delete all csv files ? (Y/N) :"
if /i %SW% == Y (del %PAR1%\CSV\*.*
echo * already deleted all csv file in %PAR1%\CSV\*.* >> Result_Vol_Xls2Csv.txt)

::----執行結果出力之表頭設定
echo. > Result_Vol_Xls2Csv.txt
echo * ** Result of excel convert ** * %DATE% %TIME% >> Result_Vol_Xls2Csv.txt
echo. >> Result_Vol_Xls2Csv.txt
echo --------- 執行動作說明 對象檔名 -------- >> Result_Vol_Xls2Csv.txt
echo ***
echo *** Convert Excel sheets to csv files in process 執行中...

::-----讀取所有excel檔,並執行轉換為csv檔
For /f "tokens=1 delims=?" %%A in ( 'forfiles /P "%PAR1%" /M "*.xls*" /c "cmd /c echo @fname" ') do (
CALL :Xls2Csv %%A)

echo ***
echo *** Convert Excel sheets to csv files completed 執行完了
echo ------------ Convert to csv completed 正常終了 %DATE% %TIME% >> Result_Vol_Xls2Csv.txt
:EJob
pause ejob
EXIT

:Xls2Csv
SET xlsFName=%1
::-----CSV子目錄需先存在,Eexcel無副檔名xls 仍可;csv出力時檔名不能既存,需先刪除

IF EXIST %PAR1%\CSV\%xlsFName%.csv (del %PAR1%\CSV\%xlsFName%.csv
echo * already deleted old csv file %PAR1%\CSV\%xlsFName%.csv >> Result_Vol_Xls2Csv.txt)
CALL CScript //B excel2csv.vbs %PAR1%\%xlsFName% %PAR1%\CSV\%xlsFName%.csv
echo ** already coverted csv file save as %PAR1%\CSV\%xlsFName%.csv >> Result_Vol_Xls2Csv.txt
rem pause ---run vbs?
EXIT /B

-----by linct------

留言
avatar-img
留言分享你的想法!
avatar-img
linct的沙龍
64會員
203內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/03/31
比爾·蓋茲於1999年出版的《數位神經系統》一書,至今仍具有參考價值。本文探討該書的核心概念,如何在當今的科技環境下應用數位神經系統,並提出一些需要調整的部分。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/26
此程式利用批次檔(bat)結合vbscript,自動篩選Windows事件紀錄,並產生Excel報表,方便管理人員統計與分析系統事件。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
2025/01/20
此程式 可將 CSV 檔案資料轉換並更新至 Excel 檔案,減少檔案大小並方便傳輸。程式可自訂 CSV、Excel 檔案路徑及更新範圍,多種儲存格式與應用場景,如讀取 TXT 檔案、保留 Excel 巨集公式及設定排程自動執行等。
Thumbnail
看更多
你可能也想看
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
Excel好好玩VBA-菜緒 (https://portaly.cc/ezyvba) VBE輔助工具一個針對Excel VBA撰寫的輔助工具 代碼對齊排版、排序、刪空行、刪註解、簡易VBA收集(可新增、刪除)..
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
Thumbnail
Excel 是辦公室必備工具之一,但你知道如何快速將時間進行加總嗎?傳統方法是手動輸入公式,但如果時間數量多,就會非常耗時。今天,就來教你一個簡單的公式,讓你輕鬆將時間加總,讓你的工作效率大幅提升! 行政人員:可以用來計算工時、出貨時間、會議時間等,提高工作效率。
Thumbnail
Excel 是辦公室必備工具之一,但你知道如何快速將時間進行加總嗎?傳統方法是手動輸入公式,但如果時間數量多,就會非常耗時。今天,就來教你一個簡單的公式,讓你輕鬆將時間加總,讓你的工作效率大幅提升! 行政人員:可以用來計算工時、出貨時間、會議時間等,提高工作效率。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News