从 xlsx 创建 csv
Create csv(s) from xlsx
如何将 excel 文件 (xlsx) 批量转换为 csv?我试过了
$source = 'C:\path\to\file'
Get-ChildItem $source '*.xlsx' | Rename-Item -NewName { $_.Name -replace '\.xlsx','.csv' }
但是 csvs 不可读。理想情况下,我希望能够从每个 sheet 制作一个 csv(这样我就不必在转换之前手动将它们分开)。
谢谢。
这就是我found/got:
$source = 'C:\path\to\file'
Function ExcelCSV ($File)
{
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
$wb = $Excel.Workbooks.Open($File.FullName)
foreach ($ws in $wb.Worksheets)
{
$ws.SaveAs(($Files.FullName -replace ".xlsx$","") + ".csv", 6)
}
$wb = $Excel.Workbooks.Close()
$Excel.Quit()
}
Foreach ($Files in (Get-ChildItem -Path $source -Filter "*.xlsx"))
{
ExcelCSV($Files)
}
如何将 excel 文件 (xlsx) 批量转换为 csv?我试过了
$source = 'C:\path\to\file'
Get-ChildItem $source '*.xlsx' | Rename-Item -NewName { $_.Name -replace '\.xlsx','.csv' }
但是 csvs 不可读。理想情况下,我希望能够从每个 sheet 制作一个 csv(这样我就不必在转换之前手动将它们分开)。
谢谢。
这就是我found/got:
$source = 'C:\path\to\file'
Function ExcelCSV ($File)
{
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
$wb = $Excel.Workbooks.Open($File.FullName)
foreach ($ws in $wb.Worksheets)
{
$ws.SaveAs(($Files.FullName -replace ".xlsx$","") + ".csv", 6)
}
$wb = $Excel.Workbooks.Close()
$Excel.Quit()
}
Foreach ($Files in (Get-ChildItem -Path $source -Filter "*.xlsx"))
{
ExcelCSV($Files)
}