
У меня есть несколько сотен файлов Excel с разным количеством листов в каждом. Мне нужно экспортировать каждый лист как CSV (предпочтительно с "each","cell","in","кавычками", но не обязательно), в идеале без переформатирования столбцов в даты.
Есть ли способ автоматизировать это? Я рассматривал возможность сделать что-то с помощью PowerShell, но все, что я видел относительно Excel, включает в себя объекты COM, которых я стараюсь избегать, поскольку я с ними не знаком и, к сожалению, сейчас у меня нет времени на обучение.
решение1
Используйте один из модулей с сайта MS powershellgallery.com...
Find-Module -Name '*Excel*'
# Results
<#
Version Name Repository Description
------- ---- ---------- -----------
7.1.1 ImportExcel PSGallery PowerShell module to import/export Excel spreadsheets, without Excel....
0.1.12 PSWriteExcel PSGallery Little project to create Excel files without Microsoft Excel being installed.
1.0.2 PSExcel PSGallery Work with Excel without installing Excel
20.0.7654.0 ExcelCmdlets PSGallery CData Cmdlets for Excel
20.0.7654.0 ExcelServicesCmdlets PSGallery CData Cmdlets for Excel Services
0.1.6 BitTitan.Runbooks.Excel PSGallery PowerShell module for Excel-related functions and resources used in BitTitan Runbooks
20.0.7654.0 ExcelOnlineCmdlets PSGallery CData Cmdlets for Excel Online
0.1.6 BitTitan.Runbooks.Excel.Beta PSGallery PowerShell module for Excel-related functions and resources used in BitTitan Runbooks
0.6.9 ExcelPSLib PSGallery Allow simple creation and manipulation of XLSX file
0.0.4 Excelimo PSGallery Simple project generating Excel Workbooks/Worksheets
2.1 Read-ExcelFile PSGallery PowerShell module to import Excel spreadsheets, without Excel....
0.0.4 ProductivityTools.PSImportExcelToSQL PSGallery Module takes all excel files in given directory and push the content to database.
#>
... чтобы прочитать файлы.
Что касается этого...
'...CSV (предпочтительно с кавычками "each","cell","in","...'
... используйте командлет Export-Csv, он делает это намеренно
# Get specifics for a module, cmdlet, or function
(Get-Command -Name Export-Csv).Parameters
(Get-Command -Name Export-Csv).Parameters.Keys
Get-help -Name Export-Csv -Examples
Get-help -Name Export-Csv -Full
Get-help -Name Export-Csv -Online
Поиск в Интернете покажет вам примеры:
Примеры попаданий:
Import-Excel -Path .\ddm.xlsx -WorksheetName 'DDM Data' |
Tee-Object -Variable xlData