如何在没有覆盖Excel文件的情况下保存文件



我正在使用Powershell脚本中的EPPlus.dll将CSV文件转换为XLSX文件,但是我不知道如果没有现有数据,我就不知道如何保存文件。

我必须从CSV文件生成新信息到Excel文件,但是我还有其他人,手动创建了我的脚本总是覆盖的标签。

脚本看起来像这样:

$FileNameCSV = "$env:WORKSPACE/file.csv"
$FileNameExcel = "\folderfile.xlsx "
$DLLPath = "D:EPPlus.dll"
[Reflection.Assembly]::LoadFile($DLLPath) | Out-Null
$Format = New-object -TypeName OfficeOpenXml.ExcelTextFormat
$Format.Delimiter = ","
$Format.TextQualifier = '"'
$Format.Encoding = [System.Text.Encoding]::UTF8
$Format.SkipLinesBeginning = '0'
$Format.SkipLinesEnd = '1'
$TableStyle = [OfficeOpenXml.Table.TableStyles]::Medium1
$ExcelPackage = New-Object OfficeOpenXml.ExcelPackage 
$Worksheet = $ExcelPackage.Workbook.Worksheets.Add("CM")
$null=$Worksheet.Cells.LoadFromText((Get-Item $FileNameCSV),$Format,$TableStyle,$true) 
$Worksheet.Cells[$Worksheet.Dimension.Address+1].AutoFitColumns()
$Worksheet.Column(3).Style.Numberformat.Format = "dd/mm/yyyy";
$ExcelPackage.SaveAs($FileNameExcel)
Write-Host "CSV File $FileNameCSV converted to Excel file $FileNameExcel"

您需要通过将名称传递给构造函数来打开名为 $FileNameExcel的现有,可能是这样的:

  $ExcelPackage = New-Object OfficeOpenXml.ExcelPackage($FileNameExcel)

然后,将新工作表添加到本工作簿中,将CSV加载到本新工作表中,就像您目前相同的方式,然后再次保存工作簿。

最新更新