使用Powershell保存打开的Excel工作表

问题描述 投票:0回答:2

我完全是Powershell的新手。在使用Powershell保存打开的Excel工作表时需要您的帮助。

脚本如下所示

$xlPasteValues = -4163
$xlCellTypeLastCell = 11
$xl = new-object -comobject excel.application
$xl.Visible = $True
$xl.DisplayAlerts = $False
$wb = $xl.Workbooks.Add()
$i = 1
$collection = Get-ChildItem C:\Test\* -include *.csv  # Change the location of your CSV files here.
$length = 4
foreach ($item in $collection) {
    $wb1 = $xl.Workbooks.Open("$item")
    $array = $item.ToString()
    $delim = "\"
    $SheetName = $array.split($delim)
    $s = $SheetName[2]
    $sn = $s.split(".")
    $nsn = $sn[0]
    $ws1 = $wb1.worksheets | where {$_.name -eq $nsn}
Write-Host $item $nsn
$used = $ws1.usedRange
$used.Select()
$used.copy()
$wb.Activate()
$ws = $wb.Sheets.Add()
$ws2 = $wb.worksheets | where {$_.name -eq "sheet$i"}
[void]$ws2.Range("A1").PasteSpecial(-4163)
$ws2.name = $nsn
$i++ 
$wb1.Close()
}
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat =[Microsoft.Office.Interop.Excel.XlFileFormat]::xlWorkbookDefault
$Excel = New-Object -comobject Excel.Application
$Excel.Visible = $true
powershell
2个回答
1
投票

检查我的PowerShell Excel模块on Github。您也可以grab it from the PowerShell Gallery.

然后尝试:

$xlFileName="c:\temp\test.xlsx"    

dir *.csv | 
    ForEach {
        $sheetName=$_.Name.Split('.')[0]

        Import-Csv $_.FullName | 
            Export-Excel $xlFileName -WorkSheetname $sheetName
    }

Invoke-Item $xlFileName

enter image description here


1
投票

您的问题相当模糊,所以我假设您想知道如何通过Powershell打开和保存Excel文档。

使用新对象打开Excel文档

$a = New-Object -COM "Excel.Application"
$a.Visible = $true
$b = $a.Workbooks.Open("C:\PATH\TO\YOUR\EXCEL\sheet.xlsx")

保存并关闭文档

$b.Save()
$b.Close()
© www.soinside.com 2019 - 2024. All rights reserved.