Chuyển đổi nhiều trang excel sang csv bằng powershell

Sử dụng các hàm cơ bản trong Excel, bạn chỉ có thể lưu toàn bộ trang tính của mình dưới dạng tệp văn bản hoặc dưới dạng CSV. Vì vậy, làm cách nào để bạn chuyển đổi nhiều trang tính Excel thành tệp CSV hoặc tệp văn bản riêng biệt?

Bấm vào đây nếu bạn muốn chuyển sang file Text. Hoặc nếu bạn muốn chuyển đổi sang CSV, vui lòng làm theo hướng dẫn bên dưới

Cách chuyển đổi nhiều trang tính Excel thành tệp CSV

Bước 1 - Mở cửa sổ VBA

  • Trước tiên, đảm bảo rằng Bảng tính Excel của bạn đang mở và nhấn ALT + F11 cùng lúc để mở cửa sổ Ứng dụng Microsoft Visual Basic [VBA]. Nếu bạn không thể mở cửa sổ VBA bằng cách nhấn “ALT + F11”, có một cách khác để thực hiện
  • Trong Tab Nhà phát triển, nhấp vào "Visual Basic" ở bên trái và hành động đó sẽ mở nó

Bước 2 - Nhập mã VSB

  • Bây giờ Ứng dụng Microsoft Visual Basic của bạn đã mở, bạn cần nhấp vào Chèn -> Mô-đun. Sau đó, sao chép/dán mã này vào Cửa sổ Mô-đun của bạn

                Sub ExportSheetsToCSV[]
                    Dim xWs As Worksheet
                    Dim xcsvFile As String
                    For Each xWs In Application.ActiveWorkbook.Worksheets
                        xWs.Copy
                        xcsvFile = CurDir & "\" & xWs.Name & ".csv"
                        Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
                        FileFormat:=xlCSV, CreateBackup:=False
                        Application.ActiveWorkbook.Saved = True
                       Application.ActiveWorkbook.Close
                   Next
               End Sub

  • Nó sẽ trông giống thế này

Bước 3 - Bước cuối cùng

  • Chèn code xong nhấn F5 cho nó chạy. Sau đó, bạn sẽ thấy rằng tất cả các Tệp CSV đã xuất đều nằm trong Thư mục Tài liệu của bạn - như trong ảnh chụp màn hình này

Chuyển đổi nhiều trang tính Excel thành tệp văn bản

Bước 1 - Mở cửa sổ VBA

  • Trước tiên, đảm bảo rằng Bảng tính Excel của bạn đang mở và nhấn ALT + F11 cùng lúc để mở cửa sổ Ứng dụng Microsoft Visual Basic [VBA]. Nếu bạn không thể mở cửa sổ VBA bằng cách nhấn “ALT + F11”, có một cách khác để thực hiện
  • Trong Tab Nhà phát triển, nhấp vào "Visual Basic" ở bên trái và hành động đó sẽ mở nó

Bước 2 - Nhập mã VSB

  • Bây giờ Ứng dụng Microsoft Visual Basic của bạn đã mở, bạn cần nhấp vào Chèn -> Mô-đun. Sau đó, sao chép/dán mã này vào Cửa sổ Mô-đun của bạn

        Sub ExportSheetsToText[]
            Dim xWs As Worksheet
            Dim xTextFile As String
               For Each xWs In Application.ActiveWorkbook.Worksheets
                 xWs.Copy
                 xTextFile = CurDir & "\" & xWs.Name & ".txt"
                 Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText
                 Application.ActiveWorkbook.Saved = True
                 Application.ActiveWorkbook.Close
              Next
          End Sub                          
        

Bước 3 - Bước cuối cùng

  • Chèn code xong nhấn F5 cho nó chạy. Sau đó, bạn sẽ thấy rằng tất cả các Tệp CSV đã xuất đều nằm trong Thư mục Tài liệu của bạn - như trong ảnh chụp màn hình này


Bạn có biết rằng chúng tôi cũng thực hiện Giải pháp tích hợp không?

Chipkin có các giải pháp tích hợp cho hầu hết mọi tình huống. Chúng tôi chuyên về truyền thông giao thức mạng và có hơn 20 năm kinh nghiệm. Bấm để biết thêm thông tin

Xin chào,

với một vài dòng mã Powershell, có thể xuất Sổ làm việc Excel dưới dạng tệp csv.
Xác định danh sách excel của bạn

$sExcelFile="D:\temp\ExcelFile.xlsx"
$sCSVFile="D:\temp\list.csv"

Mở Excel bằng DCOM

# Get COM Object
$oExcel = New-Object -ComObject "Excel.Application"
# Should Excel be visible?
$oExcel.Visible = $true
# and open excel file
$oExcelDoc = $oExcel.Workbooks.Open[$sExcelFile]

Bây giờ bạn phải chọn và kích hoạt bảng tính bạn muốn xuất. Chỉ mục bắt đầu bằng 1

# Open 1st Worksheet
$oWorksheet = $oExcelDoc.Worksheets.item[1]
# Activate, show it
$oWorksheet.Activate[]

Và sử dụng phương thức SaveAs để xuất trang tính dưới dạng [windows] csv

$oExcelDoc.SaveAs[$sCSVFile,[Microsoft.Office.Interop.Excel.XlFileFormat]::xlCSVWindows]

Để có danh sách tất cả các định dạng xuất có thể xem bài viết trước của tôi

Cuối cùng đóng Excel

$oExcelDoc.Close[$false]
Start-Sleep 1
# Cleanup COM
[System.Runtime.InteropServices.Marshal]::ReleaseComObject[$oWorksheet]|out-null
$oWorksheet=$null
Start-Sleep 1
# Cleanup COM
[System.Runtime.InteropServices.Marshal]::ReleaseComObject[$oExcelDoc]|out-null
$oExcelDoc=$null
# Close Excel
$oExcel.Quit[]
Start-Sleep 1
# Cleanup COM
[System.Runtime.InteropServices.Marshal]::ReleaseComObject[$oExcel]|out-null
$oExcel=$null
[GC]::Collect[]
[GC]::WaitForPendingFinalizers[]

Michael

Quảng cáo để hỗ trợ michels techblog. thông tin

Chủ Đề