Excel 使用Powershell将整个列从一个CSV文件复制到另一个CSV文件
我有两个CSV文件:File1.CSV有一个包含4000多行的列。File2.csv有200列,包含10000多行内容。我想在file1.csv中添加一列作为File2.csv中的附加列。我可以将其添加到现有文件的最右端。我在网上找到了几个选择,但没有一个像我所希望的那样有效。我可以使用Input CSV cmdlet并添加属性来完成此操作,但这需要1个多小时才能执行。有没有什么方法可以做到这一点,而不必将CSV内容转换为PSObject?我过去使用过Get Content和Set Content,但这会将一个文件附加到另一个文件的底部。是否有任何方法可以做类似的事情,但附加到现有文件的右侧 这段代码让我更接近我所需要的。这个问题是Excel没有保存或关闭。关于如何通过修复下面的代码或更简单/更有效的方法来解决此问题,您有什么想法吗Excel 使用Powershell将整个列从一个CSV文件复制到另一个CSV文件,excel,powershell,csv,Excel,Powershell,Csv,我有两个CSV文件:File1.CSV有一个包含4000多行的列。File2.csv有200列,包含10000多行内容。我想在file1.csv中添加一列作为File2.csv中的附加列。我可以将其添加到现有文件的最右端。我在网上找到了几个选择,但没有一个像我所希望的那样有效。我可以使用Input CSV cmdlet并添加属性来完成此操作,但这需要1个多小时才能执行。有没有什么方法可以做到这一点,而不必将CSV内容转换为PSObject?我过去使用过Get Content和Set Conten
$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()
下面的代码将在文件的行中循环。您可以使用它将每一行读入ArrayList
$FileData = Get-Content "$Filename"
foreach ($i in $FileData)
{
DoSomethingWithLine($i)
}
然后循环遍历另一个文件,并将每一行与存储在ArrayList中的一行组合起来,用必要的逗号和引号将其连接起来,然后使用“添加内容”将每一行附加到新文件中
有很多其他更复杂的方法可以做到这一点。我能够修复我的初始脚本。但这仍然很有帮助,它给了我更多的想法。非常感谢。