【发布时间】:2015-04-20 13:21:50
【问题描述】:
我有两个 CSV 文件:File1.csv 有一列有 4000 多行。 File2.csv 有 200 列,内容超过 10000 行。我想将 file1.csv 中的一列添加为 File2.csv 上的附加列。我可以将它添加到现有文件的末尾(最右边)。我在网上找到了几个选项,但没有一个能如愿以偿。我可以使用 Input-CSV cmdlet 并添加一个属性来完成它,但这需要 1 个多小时才能执行。有什么方法可以做到这一点而不必将 CSV 内容转换为 PSobjects?我过去曾使用过 Get-Content 和 Set-Content,但这会将一个文件附加到另一个文件的底部。有什么办法可以做类似的事情,但附加到现有文件的右侧?
这是让我更接近我需要的代码。这个问题是 Excel 没有保存或关闭。关于如何通过修复下面的代码或更简单/更有效的方法来解决此问题的任何想法?
$source = "C:\Users\Desktop\Script_Development\04-16-2015\Bit.csv"
$dest = "C:\Users\Desktop\Script_Development\04-16-2015\MergedwithHeader_04-16-2015.csv"
$Excel = New-Object -ComObject Excel.Application
$Excel.visible = $false
$Workbooksource = $excel.Workbooks.open($source)
$Worksheetsource = $Workbooksource.WorkSheets.item("Bit")
$Worksheetsource.activate()
$range = $Worksheetsource.Range("A1").EntireColumn
$range.Copy() | out-null
$Workbookdest = $excel.Workbooks.open($dest)
$Worksheetdest = $Workbookdest.Worksheets.item("MergedwithHeader_04-16-2015")
$Range = $Worksheetdest.Range("FT1")
$Worksheetdest.Paste($range)
$Workbookdest.SaveAs("C:\Users\Desktop\Script_Development\04-16-2015\MergedwithHeader_04-16-2015.xls")
$Excel.quit()
【问题讨论】:
标签: excel powershell csv