我希望将大型 excel 文件拆分为多个 excel 文件
我的示例 excel 文件
Name Value value2
abc1 10 100
abc2 20 200
abc3 30 300
abc4 40 400
abc5 50 500
abc6 60 600
abc7 70 700
abc8 80 800
预期成果
批次 1.xlsx
Name Value Value2
abc1 10 100
abc2 20 200
abc3 30 300
批次2.xlsx
Name Value Value2
abc4 40 400
abc5 50 500
abc6 60 600
批次3.xlsx
Name Value Value2
abc7 70 700
abc8 80 800
Myscript在循环中击中..作为寻求帮助的初学者..
示例:用户选择要拆分为3行的数据,如果有8行数据输入文件.,file3.xlsx可以保留剩余的2行。
$nom = Read-Host 'Enter number of rows of data want to be in a file'
$nom = [int]$nom + [int]1
$nom1 = 'A'+ $nom
$nxc = 100
$meto = 'A1'
For ($nom; $nom -le $nxc) {
$excel = New-Object -ComObject Excel.Application
$excel.visible = $true
$workbook = $excel.workbooks.open("C:UsersadminDesktopraxMasterin.xlsx")
$worksheet = $workbook.sheets.item("Sheet1")
$worksheet.Range("$meto","$nom1").EntireRow.copy()
$wb2=$excel.workbooks.open("C:UsersadminDesktopraxout.xlsx")
$targetRange=$wb2.Worksheets.Item('Sheet1').Range("A1").EntireRow
$wb2.Worksheets.Item('Sheet1').Activate()
$targetRange.PasteSpecial(-4163)
$meto = $wb2.Worksheets.Item('Sheet1').UsedRange.Rows.Count
$wb2.RefreshAll()
$wb2.Save()
$workbook.Worksheets.Item('Sheet1').Activate()
$met = $workbook.Worksheets.Item('Sheet1').UsedRange.Rows.Count
$nxc = $met
$meto = [int]$meto + [int]1
$nom = [int]$meto - [int]1
$nom = [int]$nom + [int]$nom
$nom
$excel.Quit()
}
你可以使用道格·芬克(Doug Finke(开发的很棒的模块。导入-Excel
下面的代码将解决您的问题。
$r=@()
$t=$C=1
Import-Excel -Path C:Temptest.xlsx|Foreach-Object -Process {
#Append rows in an array
$r += $_
#Save in a new excel when count reaches 3
if($C -eq 3){
$r | Export-Excel -Path C:Temptest_$t.xlsx
#reset values
$r=@()
$c=1
$t++
}
else{
#increment row count
$c++
}
}
#save remaining rows
$r|Export-Excel -Path C:Temptest_$t.xlsx
您可以相应地重命名变量。