Como Exportar um CSV para Excel Usando PowerShell

  1. Exportar Arquivo CSV para Arquivo Excel Usando o Objeto COM do Excel no PowerShell
  2. Exportar Arquivo CSV para Arquivo Excel Usando o Objeto COM do Excel no PowerShell
  3. Exportar Arquivo CSV para Arquivo Excel Usando o PSExcel no PowerShell
  4. Conclusão
Como Exportar um CSV para Excel Usando PowerShell

Um CSV (Valores Separados por Vírgula) é um arquivo de texto simples que armazena dados em formato tabular. Contém uma lista de dados separados por vírgulas ou outros delimitadores, como pontos e vírgulas.

Um arquivo CSV tem a extensão .csv e pode ser visualizado com um programa de planilha, como o Microsoft Excel. Um arquivo com a extensão .xlsx é um arquivo de Planilha do Microsoft Excel.

Este artigo aprofunda-se nas especificidades da exportação de arquivos CSV para Excel usando PowerShell, cobrindo três métodos distintos: o Objeto COM do Excel, o módulo ImportExcel e o módulo PSExcel. Cada método atende a diferentes cenários e requisitos, oferecendo vantagens únicas.

Exportar Arquivo CSV para Arquivo Excel Usando o Objeto COM do Excel no PowerShell

O método do Objeto COM do Excel é particularmente útil ao lidar com transformações de dados e relatórios em ambientes Windows. Esta abordagem é ideal para aqueles que precisam automatizar o processo de conversão de dados CSV para um formato Excel mais amigável, amplamente utilizado em negócios e análise de dados.

Script:

# Define the CSV file path and the Excel file path
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Start Excel application
$excel = New-Object -ComObject excel.application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.worksheets.Item(1)

# Import CSV data into the worksheet
$row = 1
Import-Csv $csvPath | ForEach-Object {
    $col = 1
    foreach ($value in $_.PSObject.Properties.Value) {
        $worksheet.Cells.Item($row, $col) = $value
        $col++
    }
    $row++
}

# Save and close Excel workbook
$workbook.SaveAs($excelPath)
$excel.Quit()

Neste script, começamos definindo os caminhos para nosso arquivo CSV de origem e o arquivo Excel de destino. Em seguida, iniciamos uma instância da aplicação Excel e adicionamos um novo livro de trabalho com uma única planilha.

O cmdlet Import-Csv lê o arquivo CSV, e iteramos por cada registro usando ForEach-Object. Dentro do loop, atribuímos cada valor à célula correspondente na planilha do Excel.

Após preencher a planilha com todos os dados do arquivo CSV, salvamos o livro de trabalho no caminho especificado e fechamos a aplicação Excel.

Saída:

exportar um csv para excel usando powershell - saída 1

Exportar Arquivo CSV para Arquivo Excel Usando o Objeto COM do Excel no PowerShell

O método do Objeto COM do Excel é particularmente útil ao lidar com transformações de dados e relatórios em ambientes Windows. Esta abordagem é ideal para aqueles que precisam automatizar o processo de conversão de dados CSV para um formato Excel mais amigável, amplamente utilizado em negócios e análise de dados.

Primeiro, você precisa instalar o módulo ImportExcel, se ainda não o fez.

Install-Module -Name ImportExcel -Force -Scope CurrentUser

Script:

# Install the ImportExcel module if not already installed
# Install-Module -Name ImportExcel -Scope CurrentUser

# Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Import data from CSV and export to Excel
Import-Csv -Path $csvPath | Export-Excel -Path $excelPath

# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"

Neste script, primeiro verificamos se o módulo ImportExcel está instalado. Este módulo não está incluído no PowerShell por padrão e pode precisar ser instalado a partir do PowerShell Gallery usando Install-Module.

Em seguida, definimos os caminhos dos arquivos para nosso CSV de origem e o arquivo Excel de destino. O cmdlet Import-Csv lê o arquivo CSV, e o pipeline (|) passa os dados importados diretamente para o cmdlet Export-Excel, que cria um arquivo Excel na localização especificada.

Este script é projetado para ser simples e eficiente, tornando-se acessível mesmo para aqueles novos na scriptização do PowerShell. Ele demonstra efetivamente a facilidade de converter dados de CSV para o formato Excel usando PowerShell.

Saída:

exportar um csv para excel usando powershell - saída 2

Exportar Arquivo CSV para Arquivo Excel Usando o PSExcel no PowerShell

O módulo PSExcel aproveita as capacidades do PowerShell para interagir com arquivos do Excel sem precisar do Excel instalado no sistema. Isso o torna particularmente útil em ambientes onde instalar o Excel não é viável, como em servidores ou sistemas automatizados.

PSExcel é amplamente utilizado para tarefas como geração de relatórios, análise de dados e conversão de dados em um formato mais apresentável e acessível, como Excel.

Primeiro, você precisa instalar o módulo PSExcel, se ainda não o fez.

Install-Module -Name PSExcel -Force -Scope CurrentUser

Script:

#Define the CSV and Excel file paths
$csvPath = "C:\path\file.csv"
$excelPath = "C:\path\file.xlsx"

# Import data from CSV
$csvData = Import-Csv -Path $csvPath

# Export data to Excel
$csvData | Export-Excel -Path $excelPath

# Print completion message
Write-Host "CSV data has been exported to Excel at: $excelPath"

Neste script, começamos garantindo que o módulo PSExcel esteja instalado. Ele não está incluído por padrão no PowerShell e pode ser instalado a partir do PowerShell Gallery.

Em seguida, definimos os caminhos para nosso arquivo CSV de origem e o arquivo Excel de destino. O cmdlet Import-Csv é usado para ler o arquivo CSV em uma variável.

Esses dados importados são então passados para o cmdlet Export-Excel, que cria um arquivo Excel na localização especificada.

Saída:

exportar um csv para excel usando powershell - saída 3

Conclusão

Este guia abrangente sobre a exportação de arquivos CSV para Excel usando PowerShell demonstrou a flexibilidade e o poder do PowerShell ao lidar com tarefas de conversão de dados. Cada método explorado - o Objeto COM do Excel, o módulo ImportExcel e o módulo PSExcel - oferece benefícios únicos, atendendo a diferentes ambientes e requisitos.

O Objeto COM do Excel é uma escolha robusta para interação direta com o Excel em ambientes Windows, ideal para tarefas complexas de manipulação de dados. Os módulos ImportExcel e PSExcel fornecem uma abordagem alternativa, estendendo a funcionalidade do PowerShell para lidar com arquivos do Excel com facilidade, mesmo na ausência do software Excel.

Esses métodos não apenas destacam a versatilidade do PowerShell, mas também oferecem soluções práticas para automatizar e simplificar tarefas de transformação de dados. Seja você um iniciante na scriptização do PowerShell ou um profissional experiente, esses métodos oferecem ferramentas valiosas para aprimorar suas capacidades de processamento e relatórios de dados em uma variedade de cenários.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artigo relacionado - PowerShell Export