【发布时间】:2019-01-16 08:02:46
【问题描述】:
刚接触 Powershell 并希望学习。
目标: 尝试从 .csv 文件中取出数据(每行 14 个数据单元格)并导入到现有的 .xlsx 文件中,从第二行列 (A2:N2) 开始。
.xlsx 文件有 4 张纸,我要编辑的那张被标记为“数据”。数据表/选项卡有 18 列,前 14 列是我希望导入的数据从行开始的位置(A2:N2-> End 会有所不同)。
寻找一种自动生成报告的方法,方法是使用自动生成的文件 (.csv) 中的数据填充 A-N 行。
带有一些值的“数据”选项卡示例:
当前过程是打开一个 xls 文件并复制/粘贴到从 A2 开始的单元格中。希望自动执行此操作并自动生成报告 -> 电子邮件 .xls 文件,我将其转换为 .csv 并使用以下代码删除一些不需要的标题和额外信息:
Function ExcelCSV ($File)
{
$pwd = "C:\Users\..." #Removed local path
$excelFile = "$pwd\" + $File + ".xls"
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
$wb = $Excel.Workbooks.Open($excelFile)
foreach ($ws in $wb.Worksheets)
{
$ws.SaveAs("$pwd\" + $File + ".csv", 6)
}
$Excel.Quit()
}
$TestFile = (Get-Content .\FileName.xls) -replace 'null',''
$TestFile | Out-File Test.xls
$FileName = "Test"
ExcelCSV -File $FileName
Get-Content Test.csv | Select-Object -Skip 2 | Select-Object -SkipLast 3 | Set-Content Test2.csv
【问题讨论】:
-
您可能会发现使用 VBA 而不是 PowerShell 会更容易。您决定使用 PowerShell 是否有特定原因?
标签: excel powershell csv xlsx