PowerShell导出到CSV偏移行

时间:2017-10-23 10:11:18

标签: powershell csv export-to-csv

我从我发现的将Excel文件中的多张纸张导出为CSV文件的内容中更新了一些代码。我需要在没有前6行的情况下导出。它们都具有相同的格式。

我可以在哪里为每个标签应用偏移量?

function ExportWSToCSV {
    Param(
        [Parameter(Position=0, Mandatory=$true)] [string]$excelPath,
        [Parameter(Position=1, Mandatory=$true)] [string]$excelFileName,
        [Parameter(Position=2, Mandatory=$true)] [string]$excelFormat,
        [Parameter(Position=3, Mandatory=$true)] [string]$csvPath
    )

    Write-Output "Your cvs files are located " $csvPath

    $excelFile= $excelPath + $excelFileName + $excelFormat
    $E = New-Object -ComObject Excel.Application
    $E.Visible = $false
    $E.DisplayAlerts = $false
    $wb = $E.Workbooks.Open($excelFile)
    foreach ($ws in $wb.Worksheets) {
        $n = $excelFileName + "_" + $ws.Name
        $ws.SaveAs($csvPath + $n + ".csv", 6)
    }
    $E.Quit()
}

1 个答案:

答案 0 :(得分:2)

您可以使用内置的Delete()方法。 EntireRow property可以使用此功能,Range object是<{3}}的一部分。

变化:

foreach ($ws in $wb.Worksheets) {
    $n = $excelFileName + "_" + $ws.Name
    $ws.SaveAs($csvPath + $n + ".csv", 6)
}

要:

foreach ($ws in $wb.Worksheets) {
    $ws.range("A1:A6").EntireRow.Delete()
    $n = $excelFileName + "_" + $ws.Name
    $ws.SaveAs($csvPath + $n + ".csv", 6)
}