Excel desde PowerShell

A continuación vamos a ver como usar Excel desde PowerShell, como crear archivos, manipularlos y darles formato desde la consola de PowerShell.

Manipular datos hoy es uno de los tareas fundamentales dentro de las áreas de sistemas, en especial dentro de los departamentos de infraestrucutra y administración de sistemas. A su vez, Excel es uno de esos programas que nunca pasa de moda, por lo que nunca está de más conocer como sacarle provecho a nuestras tareas diarias.

Para manipular la aplicación Excel, vamos a utilizar plataforma COM (COM interface), que básicamente es un conjunto definido de métodos soportados por un objeto, para “llamar” a la aplicación en sí de la siguiente manera:

$Excel = New-Object -ComObject Excel.Application

La línea anterior, nospermite abrir una instancia de la aplicación en nuestra computadora (podemos observar esto, ejecutando el administrador de tareas y revisando los procesos, donde vamos a encontrar el proceso Excel).

Crear un archivo Excel

Para crear un nuevo archivo de Excel es necesario introducirnos a un nuevo nivel dentro del objecto COM Excel.Application, usando el método Add:

$WorkBook = $Excel.Workbooks.Add()

Excel desde PowerShell

Abrir un archivo

Si en vez de crear un archivo, vamos a abrir uno existente tenemos que ejecutar la siguiente línea en vez de la línea anterior:

$Path = "C:\Users\Victor\Desktop\Planilla.xslx"
$WorkBook = $Excel.Workbooks.Open($Path)

Nombrar una hoja

Ya con el archivo abierto (libro) vamos a nombrar la hoja de nuestro WorkBook, de la siguiente manera:

$WorkSheet = $WorkBook.Worksheets.Item(1)
$WorkSheet.Name = 'Hoja Nueva'

Insertar datos

Ahora que tenemos un archivo para manipular, vamos a insertar datos dentro de la planilla. Con la siguiente línea de código vamos a modificar el valor de la celda A1, insertando el texto “Hola mundo!”:

$WorkSheet.Cells.Item(1,1) = 'Hola mundo!'

Ahora, si queremos darle un formato, como por ejemplo, dejar el texto en negrita, vamos a hacerlo así:

$WorkSheet.Cells.Item(1,1).Font.Bold = $True

Guardar archivo

Teniendo todos los cambios hechos en nuestro archivo, vamos a guardarlo con el nombre de Archivo.xlsx y posteriormente a cerrar el proceso en ejecución de la aplicación:

$WorkBook.SaveAs("C:\Users\Victor\Archivo.xlsx")
$Excel.Quit()

Saludos,

Comments