¿Cómo leer archivos de Excel en una matriz en PowerShell?
Recientemente, obtuve el requisito de leer un archivo de Excel en una matriz en PowerShell. En este tutorial de PowerShell, le explicaré cómo leer archivos de Excel en una matriz en PowerShell.
Para leer archivos de Excel en una matriz en PowerShell, puede utilizar el módulo ImportExcel que simplifica el proceso de importación de datos desde hojas de cálculo de Excel. Después de instalar el módulo con Install-Module -Name ImportExcel, puede usar el cmdlet Import-Excel para leer los datos de un archivo de Excel directamente en una matriz de PowerShell. Por ejemplo, $dataArray=Import-Excel -Path ‘path\to\your\file.xlsx’ importará los datos a la variable $dataArray.
Lea archivos de Excel en una matriz en PowerShell usando el módulo ImportExcel
Una de las formas más sencillas de trabajar con archivos de Excel en PowerShell es mediante el módulo ImportExcel. Este módulo gratuito y de código abierto simplifica el proceso de lectura y escritura de datos de Excel sin necesidad de instalar Microsoft Office o Excel en su sistema.
Instalación del módulo ImportExcel
Para utilizar el módulo ImportExcel, primero debe instalarlo en el sistema. Puede hacer esto ejecutando el siguiente comando en PowerShell:
Install-Module -Name ImportExcel -Scope CurrentUserLeer datos de Excel en una matriz
Una vez instalado el módulo, podrá leer fácilmente datos de una hoja de cálculo de Excel en una matriz. He aquí un ejemplo sencillo:
# Import the module
Import-Module ImportExcel
# Define the path to your Excel file
$excelPath = 'C:\Bijay\PowerShell.xlsx'
# Import the data from the first worksheet into an array
$dataArray = Import-Excel -Path $excelPath
# Output the array to the console
$dataArray
En este ejemplo, Import-Excel lee los datos de la primera hoja de trabajo de forma predeterminada. Si desea especificar una hoja de trabajo diferente, puede utilizar el parámetro -WorksheetName.
Filtrar columnas
Si solo está interesado en ciertas columnas, puede seleccionarlas usando el parámetro -Range:
# Import specific columns into an array
$dataArray = Import-Excel -Path $excelPath -Range "B:C"Este comando importaría solo los datos de las columnas B y C.
Leer archivos de Excel en una matriz en PowerShell usando objetos COM
Otro método para leer archivos de Excel es utilizar objetos COM en PowerShell. Este enfoque requiere que Excel esté instalado en su sistema.
Leer datos de Excel en una matriz
A continuación se explica cómo puede leer datos de un archivo de Excel utilizando objetos COM en PowerShell:
# Create a new Excel application object
$excel = New-Object -ComObject Excel.Application
# Hide the Excel application window (optional)
$excel.Visible = $false
# Open the Excel workbook
$workbook = $excel.Workbooks.Open('C:\path\to\your\file.xlsx')
# Select the first worksheet
$worksheet = $workbook.Worksheets.Item(1)
# Define the range of cells to read from
$range = $worksheet.UsedRange
# Read the values into an array
$dataArray = $range.Value2
# Close the workbook and quit Excel
$workbook.Close($false)
$excel.Quit()
# Release COM objects
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($worksheet) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
# Output the array to the console
$dataArrayEn este script, $range.Value2 recupera los valores del rango utilizado de la hoja de trabajo y los almacena en $dataArray.
Leer archivos de Excel en una matriz en el cmdlet Import-Csv de PowerShell
Si su archivo de Excel se puede guardar o convertir a formato CSV, puede usar el cmdlet nativo Import-Csv de PowerShell para leer los datos en una matriz.
Leer datos CSV en una matriz
A continuación se muestra un ejemplo de cómo leer un archivo CSV en una matriz usando Import-Csv:
# Define the path to your CSV file
$csvPath = 'C:\Bijay\PowerShell.xlsx'
# Import the CSV data into an array
$dataArray = Import-Csv -Path $csvPath
# Output the array to the console
$dataArrayEl cmdlet Import-Csv trata cada fila del archivo CSV como un objeto, con los encabezados de las columnas como los nombres de las propiedades.
Conclusión
La lectura de archivos de Excel en una matriz en PowerShell se puede lograr mediante varios métodos, como el módulo ImportExcel que no requiere la instalación de Excel. Los objetos COM proporcionan una interfaz más directa con Excel pero requieren que Excel esté instalado en su sistema. Por último, convertir sus archivos de Excel al formato CSV le permite utilizar el cmdlet nativo Import-Csv de PowerShell para una lectura de datos simple y efectiva.
En este tutorial de PowerShell, expliqué cómo leer archivos de Excel en una matriz en PowerShell.