Powershell脚本从csv转换为excel,然后重命名sheet1与文件名相同
我有两个脚本,我想知道我是否可以:
- 结合起来
- 将sheet1重命名为文件名称
我遇到的问题是,其中一个excel文件夹是另一个基于个别excel文件的具体名称。
代码1将csv转换为Excel文档
$workingdir = "C:\Users\user\Desktop\Output\*.csv" $csv = dir -path $workingdir foreach($inputCSV in $csv){ $outputXLSX = $inputCSV.DirectoryName + "\" + $inputCSV.Basename + ".xlsx" ### Create a new Excel Workbook with one empty sheet $excel = New-Object -ComObject excel.application $excel.DisplayAlerts = $False $workbook = $excel.Workbooks.Add(1) $worksheet = $workbook.worksheets.Item(1) ### Build the QueryTables.Add command ### QueryTables does the same as when clicking "Data » From Text" in Excel $TxtConnector = ("TEXT;" + $inputCSV) $Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1")) $query = $worksheet.QueryTables.item($Connector.name) ### Set the delimiter (, or ;) according to your regional settings ### $Excel.Application.International(3) = , ### $Excel.Application.International(5) = ; $query.TextFileOtherDelimiter = $Excel.Application.International(5) ### Set the format to delimited and text for every column ### A trick to create an array of 2s is used with the preceding comma $query.TextFileParseType = 1 $query.TextFileColumnDataTypes = ,2 * $worksheet.Cells.Columns.Count $query.AdjustColumnWidth = 1 ### Execute & delete the import query $query.Refresh() $query.Delete() ### Save & close the Workbook as XLSX. Change the output extension for Excel 2003 $Workbook.SaveAs($outputXLSX,51) $excel.Quit() } ## To exclude an item, use the '-exclude' parameter (wildcards if needed) remove-item -path $workingdir -exclude *Crab4dq.csv
脚本2将sheet1重新命名为我所传递的任何内容(目前一次是1个excel文档)
$xlspath = "C:\Users\user\Desktop\Output\Test.xlsx" $xldoc = new-object -comobject Excel.application $xldoc.Visible = $false $xldoc.DisplayAlerts = $false $workbook = $xldoc.Workbooks.Open($xlspath ) $worksheet = $workbook.worksheets.item(1) $worksheet.name = "Result" $workbook.Save() $workbook.Close() $xldoc.Quit()
我想这一步做到这一点,并且每个excel文档都有sheet1(它们只会有一个sheet),与文档命名一样。 可以这样做吗?
提前致谢!
项目清单
查看ImportExcel – PowerShell模块来导入/导出Excel电子表格,不使用Excel
您可以使用ImportExcel完成所有这些工作
要从CSV转换为Excel并将工作表命名为结果,请运行该命令
Import-CSV filename.csv | Export-Excel filename.xlsx -WorkSheetName 'Result'
要将文件夹中的所有CSV文件转换为.xlsx文件,并将每个Excel工作表的名称作为Result,请使用以下命令
ls *.csv | ForEach-Object { Import-CSV $_.Name | Export-Excel ($_.BaseName + ".xlsx") -WorkSheetName 'Result' }
- logging集计数总是返回-1
- 运行时错误91 – 对象variables或未设置块variables
- VBAmacros – 如果单元格匹配单元格在第三张表复制从工作表部分行到新工作表
- 停止子Workbook_Beforeclosures从closures重新运行
- 修改从多个列表创build所有可能组合的Excel vba
- 将数据从Microsoft CRM SDK集合复制到CSV文件或Excel文件。 (数据转储)
- 错误:无法使用“localhost:10.0”连接到X11窗口服务器作为DISPLAYvariables的值
- build模一个Excel表格(dynamic列和固定行)
- 从一个单元格添加值到另一个单元格,然后重置单元格值 高强