批量合并XLSX
在Windows系统中,可以使用PowerShell脚本来批量合并XLSX文件。
以下是一个简单的PowerShell脚本示例:
$excelFiles = Get-ChildItem -Path "C:\ExcelFiles" -Filter *.xlsx
$outputFile = "C:\MergedExcel.xlsx"
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.Worksheets.Item(1)
$row = 1
foreach ($file in $excelFiles) {
$currentWorkbook = $excel.Workbooks.Open($file.FullName)
$currentWorksheet = $currentWorkbook.Worksheets.Item(1)
$currentRange = $currentWorksheet.UsedRange
$rowCount = $currentRange.Rows.Count
$columnCount = $currentRange.Columns.Count
for ($i = 1; $i -le $rowCount; $i++) {
for ($j = 1; $j -le $columnCount; $j++) {
$value = $currentRange.Cells.Item($i, $j).Value2
$worksheet.Cells.Item($row, $j).Value2 = $value
}
$row++
}
$currentWorkbook.Close()
}
$workbook.SaveAs($outputFile)
$workbook.Close()
$excel.Quit()
上述脚本将合并C:\ExcelFiles目录下的所有XLSX文件,并将结果保存到C:\MergedExcel.xlsx文件中。脚本的具体步骤如下:
使用Get-ChildItem命令获取指定目录下的所有XLSX文件。
定义一个输出文件路径。
创建一个Excel对象,并创建一个新的工作簿和工作表。
定义一个行号变量。
使用foreach循环遍历每个XLSX文件。
打开当前XLSX文件,并获取第一个工作表的数据范围。
获取当前工作表的行数和列数。
使用两个for循环遍历当前工作表的每个单元格,并将值复制到输出工作表中。
更新行号变量。
关闭当前XLSX文件。
保存输出工作簿,并关闭Excel对象。
注意事项:
在使用脚本前,请备份原始XLSX文件,以免数据丢失。
如果XLSX文件的列数和列名不同,需要修改脚本中的for循环,以确保合并后的XLSX文件列数和列名正确。
如果XLSX文件中包含特殊字符或格式错误,可能会导致脚本执行失败。建议在执行脚本前对XLSX文件进行验证和清理。