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------

46會員
96內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
發表第一個留言支持創作者!
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訊息自動發送出該事件內容給群組全員,讓全員可以事先接到通知,事先做好準備,才不會遺忘重要計畫事件     
你可能也想看
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
如果要把EXCEL的內容貼到文件夾上當標籤,預設的狀態下,直接列印列貼上去文字方向會錯誤。 【📝圖文教學】 其實要讓文字轉90度躺下來休息,真的超級簡單 選取要讓文字轉方向的範圍 在字體前面加上一個小老鼠『@』 分享如果對你有幫助 歡迎訂閱贊助效率職人沙龍 解
這段程式碼假設您的XYZ資料存儲在名為"Sheet1"的工作表中的A1:Cn範圍內,其中n是資料行的數量。它將資料提取出來,然後在新建的工作表中按照網格的形式重新排列。
Thumbnail
這篇文章介紹如何使用Excel整理期貨交易所資料並追蹤期貨三大法人籌碼數據。文章涵蓋了期貨三大法人的用途、期貨交易所網站資料認識、運用Excel VBA爬取交易所資料以及資料彙整與半自動輔助更新。這些學習將幫助您深入進行期貨交易分析並制定更加細緻的交易策略。
Thumbnail
無論是企業、小商家或是個人,都可能會用到 Excel 來處理資料。在使用 Excel 時,我們常常需要將多行數據快速轉換為其他格式,例如,將多行數據合併為一行、將多行數據拆分為多列,或將多行數據轉換為其他類型資料。 傳統上,我們可以使用複製、貼上、合併儲存格等方法來完成這些操作。但是,這些方法不僅
Thumbnail
在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
Thumbnail
在數字化快速發展的今天,許多企業仍在使用Excel進行行政工作。雖然Excel擁有強大的數據處理和分析能力,但其使用也存在許多限制,例如操作複雜、難以進行大規模數據管理和分析,以及無法實現自動化處理等。 No Code AI
Thumbnail
這篇是日期轉換的第2篇,第一篇傳送門:EXCEL 民國日期轉西元日期 日期轉換大全#1 民國日期是台灣很長用的日期表達方式,但EXCEL並不是台灣人發明的,所以EXCEL並看不懂民國日期,這時如果遇到西元日期,但老闆卻堅持要用民國顯示的話,就得靠一些小手段了。 EXCEL中華民國曆 EXC
Thumbnail
工作上許多人會遇到需要將日期由民國年轉換成西元日期,使用民國年輸入日期其實EXCEL是完全看不懂的唷,他會變成文字格式而非日期格式,導致所有的日期函數都無法使用😭 所以就須要使用函數來將這些日期轉變成西元日期,這樣EXCEL才看得懂,才可使用各種函數來進行分析,這集總共有五種常見的民國年的格式案
Thumbnail
語法 UPPER(text):將英文轉換成「大寫」 LOWER(text):將英文轉換成「小寫」 PROPER(text):將英文轉換成「首字母大寫」 輸入語法後,點選需變動的儲存格即可。
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
本文介紹了將獨立的Excel檔案轉換為PDF檔的方法,並提供了相關連結和資源,包括Excel教學、VBA自動轉存檔案等。文章中還包含了南宋詞人辛棄疾詞和張忠謀的引言,讓讀者在解決問題的同時得到一些靈感和鼓勵。
Thumbnail
如果要把EXCEL的內容貼到文件夾上當標籤,預設的狀態下,直接列印列貼上去文字方向會錯誤。 【📝圖文教學】 其實要讓文字轉90度躺下來休息,真的超級簡單 選取要讓文字轉方向的範圍 在字體前面加上一個小老鼠『@』 分享如果對你有幫助 歡迎訂閱贊助效率職人沙龍 解
這段程式碼假設您的XYZ資料存儲在名為"Sheet1"的工作表中的A1:Cn範圍內,其中n是資料行的數量。它將資料提取出來,然後在新建的工作表中按照網格的形式重新排列。
Thumbnail
這篇文章介紹如何使用Excel整理期貨交易所資料並追蹤期貨三大法人籌碼數據。文章涵蓋了期貨三大法人的用途、期貨交易所網站資料認識、運用Excel VBA爬取交易所資料以及資料彙整與半自動輔助更新。這些學習將幫助您深入進行期貨交易分析並制定更加細緻的交易策略。
Thumbnail
無論是企業、小商家或是個人,都可能會用到 Excel 來處理資料。在使用 Excel 時,我們常常需要將多行數據快速轉換為其他格式,例如,將多行數據合併為一行、將多行數據拆分為多列,或將多行數據轉換為其他類型資料。 傳統上,我們可以使用複製、貼上、合併儲存格等方法來完成這些操作。但是,這些方法不僅
Thumbnail
在臺灣,有部分企業會使用民國日期,因此如何在 Excel 中轉換民國和西元日期就顯得非常重要。 除了日期轉換之外,計算年紀、星期、生肖、星座也是常見的日期處理需求。這些需求看似簡單,但如果沒有 Excel 的幫助,可能會花費不少時間和精力。
Thumbnail
在數字化快速發展的今天,許多企業仍在使用Excel進行行政工作。雖然Excel擁有強大的數據處理和分析能力,但其使用也存在許多限制,例如操作複雜、難以進行大規模數據管理和分析,以及無法實現自動化處理等。 No Code AI
Thumbnail
這篇是日期轉換的第2篇,第一篇傳送門:EXCEL 民國日期轉西元日期 日期轉換大全#1 民國日期是台灣很長用的日期表達方式,但EXCEL並不是台灣人發明的,所以EXCEL並看不懂民國日期,這時如果遇到西元日期,但老闆卻堅持要用民國顯示的話,就得靠一些小手段了。 EXCEL中華民國曆 EXC
Thumbnail
工作上許多人會遇到需要將日期由民國年轉換成西元日期,使用民國年輸入日期其實EXCEL是完全看不懂的唷,他會變成文字格式而非日期格式,導致所有的日期函數都無法使用😭 所以就須要使用函數來將這些日期轉變成西元日期,這樣EXCEL才看得懂,才可使用各種函數來進行分析,這集總共有五種常見的民國年的格式案
Thumbnail
語法 UPPER(text):將英文轉換成「大寫」 LOWER(text):將英文轉換成「小寫」 PROPER(text):將英文轉換成「首字母大寫」 輸入語法後,點選需變動的儲存格即可。