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
59會員
145內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
linct的沙龍 的其他內容
某單位志工服務時數記錄在檔案內,需匯入衛福部志工系統,但由於志工多、檔案多,進行人工計算耗時費工且常累計算錯。故提此法改善,提高效率。文章內容包含了作業流程、作業說明、實例說明、改善前後、展開運用和設計編寫。
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
本文章介紹了CPU架構的三大類型:ARM、x86和RISC-V。著重介紹了它們的特點和市場應用情況,並提到了Nvidia採用RISC-V架構的發展經過,以及ISA的定義和重要性。
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
設計功能             將整年份計畫事項,包含每月一次或每單月一次,每雙月一次之固定日期時,需要事先準備執行的事項,先一件一件記入在文字檔內,以便能該事件來臨前幾天,以LINE訊息自動發送出該事件內容給群組全員,讓全員可以事先接到通知,事先做好準備,才不會遺忘重要計畫事件     
某單位志工服務時數記錄在檔案內,需匯入衛福部志工系統,但由於志工多、檔案多,進行人工計算耗時費工且常累計算錯。故提此法改善,提高效率。文章內容包含了作業流程、作業說明、實例說明、改善前後、展開運用和設計編寫。
本文介紹瞭如何使用BAT腳本和CMD指令來自動執行檔案和空目錄的刪除作業。通過設定各種參數和指令,可以快速、有效地執行定期刪除作業,節省硬體空間並提升工作效率。
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
本文章介紹了CPU架構的三大類型:ARM、x86和RISC-V。著重介紹了它們的特點和市場應用情況,並提到了Nvidia採用RISC-V架構的發展經過,以及ISA的定義和重要性。
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
設計功能             將整年份計畫事項,包含每月一次或每單月一次,每雙月一次之固定日期時,需要事先準備執行的事項,先一件一件記入在文字檔內,以便能該事件來臨前幾天,以LINE訊息自動發送出該事件內容給群組全員,讓全員可以事先接到通知,事先做好準備,才不會遺忘重要計畫事件     
你可能也想看
Google News 追蹤
在工作中常常會需要用到Excel去整理數據資料,因為近期有在進行作業優化學習,提供網路上10個常用的Excel快捷鍵配置,以及相對應的功能,做為自我複習資料。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
這段程式碼假設您的XYZ資料存儲在名為"Sheet1"的工作表中的A1:Cn範圍內,其中n是資料行的數量。它將資料提取出來,然後在新建的工作表中按照網格的形式重新排列。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
在工作中常常會需要用到Excel去整理數據資料,因為近期有在進行作業優化學習,提供網路上10個常用的Excel快捷鍵配置,以及相對應的功能,做為自我複習資料。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
設計完一覽表之後,如果會寫程式的人可以每天用這種方法去抓資料放到Excel. 那不會寫程式的人呢? 這裡教你一個稍微要花點時間的輸出Excel的方法。 在上禮拜完成的自選裡。   一、  你先依下圖,在“功能”中找到”輸出到Excel”,按下報價精靈 二、  選擇全部加入,按下全部加
這段程式碼假設您的XYZ資料存儲在名為"Sheet1"的工作表中的A1:Cn範圍內,其中n是資料行的數量。它將資料提取出來,然後在新建的工作表中按照網格的形式重新排列。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。