Unir dados de múltiplas planilhas manualmente é uma tarefa tediosa e propensa a erros. Com o PowerShell, você automatiza esse processo em segundos, garantindo precisão e consistência nos dados consolidados.
Para manipular arquivos Excel, o PowerShell precisa acessar os objetos COM do Excel. Isso é feito adicionando uma referência ao componente.
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
Configure o caminho onde estão as planilhas a serem mescladas e o local do arquivo final. Certifique-se de que todas as planilhas tenham a mesma estrutura de colunas.
$pastaOrigem = "C:\Pasta\Com\Planilhas"
$arquivoDestino = "C:\Pasta\Com\Planilhas\Consolidado.xlsx"
Inicie um novo arquivo Excel que receberá os dados mesclados. Isso garante que o resultado final seja um único arquivo organizado.
$workbookDestino = $Excel.Workbooks.Add()
$planilhaDestino = $workbookDestino.Worksheets.Item(1)
$planilhaDestino.Name = "Dados Consolidados"
Para cada arquivo Excel na pasta, abra-o, copie os dados da primeira planilha e cole na planilha de destino. O script ignora a primeira linha (cabeçalho) após a primeira planilha para evitar duplicação.
$primeiraPlanilha = $true
Get-ChildItem -Path $pastaOrigem -Filter "*.xlsx" | ForEach-Object {
$workbookOrigem = $Excel.Workbooks.Open($_.FullName)
$planilhaOrigem = $workbookOrigem.Worksheets.Item(1)
$rangeOrigem = $planilhaOrigem.UsedRange
if ($primeiraPlanilha) {
$rangeOrigem.Copy($planilhaDestino.Cells.Item(1, 1))
$primeiraPlanilha = $false
} else {
$ultimaLinhaDestino = $planilhaDestino.Cells.Item($planilhaDestino.Rows.Count, 1).End(-4162).Row
$rangeOrigem.Offset(1, 0).Copy($planilhaDestino.Cells.Item($ultimaLinhaDestino + 1, 1))
}
$workbookOrigem.Close($false)
}
Após copiar todos os dados, salve o novo arquivo Excel e libere os recursos do Excel.
$workbookDestino.SaveAs($arquivoDestino)
$workbookDestino.Close()
$Excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
Considere três planilhas com a mesma estrutura: ID, Nome e Valor.
| ID | Nome | Valor |
|---|---|---|
| 1 | João | 100 |
| 2 | Maria | 150 |
| ID | Nome | Valor |
|---|---|---|
| 3 | Carlos | 200 |
| 4 | Ana | 120 |
| ID | Nome | Valor |
|---|---|---|
| 5 | Pedro | 180 |
| 6 | Luiza | 90 |
Após executar o script, o arquivo consolidado conterá:
| ID | Nome | Valor |
|---|---|---|
| 1 | João | 100 |
| 2 | Maria | 150 |
| 3 | Carlos | 200 |
| 4 | Ana | 120 |
| 5 | Pedro | 180 |
| 6 | Luiza | 90 |
Com este método, você automatiza a tarefa de mesclar várias planilhas Excel em uma só com PowerShell, evitando erros manuais e ganhando tempo valioso no processamento de dados.