Bagaimana saya bisa mengonversi file XLS ke file CSV di baris perintah windows.
Mesin telah menginstal Microsoft Office 2000. Saya terbuka untuk menginstal OpenOffice jika tidak memungkinkan menggunakan Microsoft Office.
Buka Notepad, buat file bernama XlsToCsv.vbs dan tempel ini di:
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
oBook.Close False
oExcel.Quit
WScript.Echo "Done"
Kemudian dari baris perintah, buka folder tempat Anda menyimpan file .vbs dan jalankan:
XlsToCsv.vbs [sourcexlsFile].xls [destinationcsvfile].csv
Ini membutuhkan Excel untuk diinstal pada mesin yang Anda gunakan.
oExcel.Workbooks.Open
baris dengan indeks lembar kerja yang diinginkan (dimulai pada 1):oBook.Worksheets(1).Activate
Versi jawaban ScottF yang sedikit dimodifikasi, yang tidak memerlukan jalur file absolut:
Saya telah mengganti nama skrip ExcelToCsv, karena skrip ini tidak terbatas pada xls sama sekali. xlsx Bekerja dengan baik, seperti yang kita harapkan.
Diuji dengan Office 2010.
sumber
Ekspansi kecil pada skrip VB keren ScottF: file batch ini akan mengulang melalui file .xlsx dalam direktori dan membuangnya ke file * .csv:
Catatan: Anda dapat mengubah ekstensi .xlsx menjadi .xls dan nama skrip ExcelToCSV menjadi XlsToCsv
sumber
Bagaimana dengan PowerShell?
Kode harus terlihat seperti ini, meskipun tidak diuji
Berikut adalah postingan yang menjelaskan cara menggunakannya
Bagaimana Saya Dapat Menggunakan Windows PowerShell untuk Mengotomatiskan Microsoft Excel?
sumber
$Excel.Workbooks.Open
metode ini. Itu tidak dapat menemukan file yang ditentukan. Saya bekerja di sekitar ini dengan menggunakanGet-Item
pada file dan menyalurkannya keForEach-Object
loop (sesuatu yang pada akhirnya akan saya lakukan dalam implementasi terakhir saya) untuk dua baris yang dimulai dengan$Workbook
.CD /D C:\ && DIR YOURDOC.csv /s
. Ternyata file tersebut disimpan ke My Documents secara default. Jadi, Anda perlu memasukkan lebih banyak ke dalam skrip jika Anda ingin menyimpan file ke folder yang sama dengan tempat Anda bekerja (jika selain My Documents).Saya perlu mengekstrak beberapa cv dari lembar kerja yang berbeda, jadi berikut ini adalah versi modifikasi dari kode plang yang memungkinkan Anda menentukan nama lembar kerja.
sumber
Ini adalah versi yang akan menangani banyak file yang diseret dan dilepaskan dari windows. Berdasarkan karya di atas oleh
Buka Notepad, buat file bernama XlsToCsv.vbs dan tempel ini di:
sumber
Mengapa tidak menulis sendiri?
Saya melihat dari profil Anda, Anda memiliki setidaknya beberapa pengalaman C # /. NET. Saya akan membuat aplikasi konsol Windows dan menggunakan pembaca Excel gratis untuk membaca file Excel Anda. Saya telah menggunakan Excel Data Reader yang tersedia dari CodePlex tanpa masalah (satu hal yang menyenangkan: pembaca ini tidak memerlukan Excel untuk diinstal). Anda dapat memanggil aplikasi konsol Anda dari baris perintah.
Jika Anda menemukan diri Anda terjebak posting di sini dan saya yakin Anda akan mendapatkan bantuan.
sumber
Anda dapat melakukannya dengan Alacon - utilitas baris perintah untuk database Alasql . Ini berfungsi dengan Node.js, jadi Anda perlu menginstal Node.js dan kemudian paket Alasql .
Untuk mengonversi file Excel ke CVS (ot TSV) Anda dapat memasukkan:
Secara default, Alasql mengonversi data dari "Sheet1", tetapi Anda dapat mengubahnya dengan parameter:
Alacon mendukung jenis konversi lain (CSV, TSV, TXT, XLSX, XLS) dan konstruksi bahasa SQL (lihat Panduan Pengguna untuk mengetahui contoh).
sumber
Ada penyedia data OLEDB Excel yang terpasang di Windows; Anda dapat menggunakan ini untuk 'menanyakan' lembar Excel melalui ADO.NET dan menulis hasilnya ke file CSV. Ada sedikit pengkodean yang diperlukan, tetapi Anda tidak perlu menginstal apa pun di mesin.
sumber
Berdasarkan apa yang telah disediakan Jon of All Trades, berikut ini (~ n) menghilangkan masalah ekstensi ganda yang mengganggu:
FOR /f "delims=" %%i IN ('DIR *.xlsx /b') DO ExcelToCSV.vbs "%%i" "%%~ni.csv"
sumber
Saya mencoba solusi ScottF VB dan membuatnya berfungsi. Namun saya ingin mengonversi file excel multi-tab (buku kerja) menjadi satu file .csv.
Ini tidak berhasil, hanya satu tab (yang disorot ketika saya membukanya melalui excel) disalin.
Apakah ada yang mengetahui skrip yang dapat mengonversi file excel multi-tab menjadi satu file .csv?
sumber
Jawaban Scott F adalah yang terbaik yang saya temukan di internet. Saya menambahkan pada kodenya untuk memenuhi kebutuhan saya. Saya tambahkan:
On Error Resume Next <- Untuk memperhitungkan file xls yang hilang dalam pemrosesan batch saya di bagian atas. oBook.Application.Columns ("A: J"). NumberFormat = "@" <- Sebelum baris SaveAs untuk memastikan data saya disimpan dalam format teks agar excel tidak menghapus awalan nol dan menghilangkan koma di string angka dalam data saya yaitu (1.200 hingga 1200). Kisaran kolom harus disesuaikan untuk memenuhi kebutuhan Anda (A: J).
Saya juga menghapus Echo "selesai" agar tidak interaktif.
Saya kemudian menambahkan skrip ke dalam file batch cmd untuk memproses data otomatis setiap jam melalui tugas.
sumber
Semua jawaban ini membantu saya membuat skrip berikut yang secara otomatis akan mengonversi file XLS * ke CSV dan sebaliknya , dengan meletakkan satu atau lebih file pada skrip (atau melalui baris perintah). Maaf atas format janky.
sumber
:: Untuk UTF-8 bekerja untuk Microsoft Office 2016 dan lebih tinggi!
Coba kode ini:
sumber
Buat file TXT di desktop Anda dengan nama "xls2csv.vbs" dan tempel kode:
Seret file XLS ke sana (seperti "test.xls"). Ini akan membuat file CSV yang dikonversi bernama "test.xls.csv". Kemudian, ganti namanya menjadi "test.csv". Selesai.
sumber