Saltar al contenido

Si quieres  hacer pruebas, como  por ejemplo,  con un Windows Server, te puede servir esta página

 

https://www.microsoft.com/es-es/evalcenter/

Y ya de paaso ... http://www.mundosql.es/2016/09/29/ampliar-el-periodo-de-prueba-de-sistemas-windows/

Cualquier duda, sugerencia que tengas pasate por el grupo de facebook:

https://www.facebook.com/groups/juankartips/

Ya trabajamos con este módulo haciendo una pequeña excel. Ahora vamos a formatear un poco los datos

Captura

De la hoja original hemos cambiado

#formatos
negrita = workbook.add_format({'bold': True})
moneda = workbook.add_format({'num_format': '#,##0'})

y lo aplicamos a la celdas de forma

# Cabeceras.
worksheet.write('A1', 'Comercial', negrita)

o

# Fila del total
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)',moneda)

También podemos darle color, tamaño y ...

Captura

#formatos
cabecera = workbook.add_format()
cabecera.set_font_color('blue')
cabecera.set_font_size(16)
cabecera.set_bold()

Y tambien podemos dar color a los nombres de libros

Captura

Este módulo da para mucho mucho.

Ahora os toca jugar con el ....

Vamos con una ejercicio o idea práctica que nos puede ser útil.

Os acordáis que hicimos un inventario en pantalla de lo fundamental que tenía nuestro equipo

Captura

Y que también lo pasamos a un fichero txt. Pues ahora toca a una excel

En el pogramita que hemos realizado lo vemos en pantalla y lo grabamos en una excel.

import time
import socket
import platform
import os
import os.path
import sys
import xlwt

print("Inventario equipo")
#datos en pantalla
print ('Sistema :', platform.system())
print ('Release :', platform.release())
print ('Version :', platform.version())
print ('Usuario :', os.getlogin())
print ('Nombre Maq.:', platform.node())
print ('Tipo Maq, :', platform.machine())
print ('Procesador :', platform.processor())
print ('Ip Maquina :', socket.gethostbyname(socket.gethostname()))

# creamos el fichero excel
wb = xlwt.Workbook()
# añadimos hoja
ws = wb.add_sheet('Mmi equipo')
# escribimos encabezados
ws.write(0,0,'Sistema')
ws.write(0,1,'Release')
ws.write(0,2,'Version')
ws.write(0,3,'Usuario')
ws.write(0,4,'Nombre Maq')
ws.write(0,5,'Procesador')
ws.write(0,6,'Ip Maquina')
# escribo columnas excel
col = 1
ws.write(col,0,platform.system())
ws.write(col,1,platform.release())
ws.write(col,2,platform.version())
ws.write(col,3,os.getlogin())
ws.write(col,4,platform.node())
ws.write(col,5,platform.machine())
ws.write(col,6,platform.processor())
ws.write(col,7,socket.gethostbyname(socket.gethostname()))
# grabo Fichero ecel.
print(" GEnerado Fichero ... Inventario_Equipo.xls")
wb.save('D:\Inventario_Equipo.xls')

El resultado lo podemos ver en  excel, calc, sql server, mysql, .....

Captura

Solo nos faltaría hacer un bucle que recorriera la red o las redes que tenemos en la empresa sin movernos de nuestro puesto de trabajo y nos saca un informe.

Después de generar el fichero Excel con Python podemos hacer directamente el paso a PowerBi, pero lo vamos a hacer desde la bbdd que tenemos en Azuresql.

Para este último paso utilizaremos PowerBi, que lo podemos descargar desde:

https://powerbi.microsoft.com/es-es/

Captura

Una vez descargado y dentro del mismo.

Captura

Obtener datos.

Podemos hacerlo desde:

Captura

Excel, SQL Server, Access, Hadoop, .....

En nuestro caso SQL Server

Captura

Conectamos

Captura

Damos usuario y contraseña

Captura

Cargar

Captura

Elegimos la forma que queramos

Captura

En un próximo artículo veremos como trabajamos con powerbi.

También veremos la otra foma de recoger los eventos de los sensores y recogerlo desde event hub,  pasar a documentdb, ....

Hoy he estado tocando excel y la forma de crearlas  con python y powershell.

Ahora toca excel.

Captura

Como vemos el código y el resultado.

#
# Creacion hoja de excel
#
# Creacion excel
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $True
# Creacion fichero excel
$libro = $excel.Workbooks.add()
# Creacion hoja excel
$hoja = $libro.WorkSheets.Add()
$hoja.Name = "Notas Alumnos"
$hoja.Select()
$hoja.Cells.Item(2,1) = "Nombre"
$hoja.Cells.Item(2,2) = "Nota"
# Datos a meter en la excel
$datos = @((‘Maria’,’4’),(‘Luis’,’5’))
#Escribimos hoja
$Fila = 3
for ( $i=0; $i -lt $datos.Count; $i++ )
{
$hoja.Cells.Item($Fila,1) = $datos[$i][0]
$hoja.Cells.Item($Fila,2) = [decimal] $datos[$i][1]
$Fila++
}
#Grabamos y abrimos
$libro.SaveAs("D:\notas.xlsx")
$Excel.Visible = $true

Creo que con los comentarios esta suficientemente explicado, y si no, pasate por el grupo de feisbuk o me lo comentas por tuister

Para mi este módulo, de momento, es el mejor que he trabajado con el.

Vemos el resultado:

Captura

Una de las cosas que he visto es a la hora de trabajar con las formulas.

Captura

Como veis practicamente se trabajo como en xlwt

Lo que os llama la atención es cuando pongo la formula, la sencillez.

Aquí os dejo el código

import xlsxwriter

# Creamos hoja y libro excel
workbook = xlsxwriter.Workbook('D:\Sueldos.xlsx')
worksheet = workbook.add_worksheet('Sueldos')

# Nombrres de empleados y sueldos
sueldos = (
['Juan', 1000],
['Mar', 1200],
['Luis', 976],
['Ana', 999],
)

# Inicializa columnas y filas
row = 0
col = 0

# Rellenando
for nombre, sueldo in (sueldos):
worksheet.write(row, col, nombre)
worksheet.write(row, col + 1, sueldo)
row += 1

# Fila del total
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')

# Generado fichero y Cerramos excel
print("Generado fichero")
workbook.close()

A partir de ahora trabajaremos con este módulo cuando hagamos cosas de excel y python.

Segundo paso de nuestro proyecto en el evento #TalkDevOps

Seguimos con nuestro fichero de temperaturas del artículo anterior que hemos hecho en Excel.

Vamos a pasarlo a Azure SQL. Empezamos

Captura

Tener en cuenta que la columna mes y minutos se llama igual. Cambiar el nombre si queréis.

Lo grabamos en formato csv

Captura

Ejecutamos el programa Importación-Esportación de SQL Server

Captura

Pillamos el fichero csv

Captura

Vemos que esta bien.

Captura

El destino es SQL Native.

También el servidor de SQL Server y la bbdd donde la vamos a colocar

Captura

En Editar asignaciones si queremos cambiar el tipo de dato.

Captura

Modificamos lo que queramos y Aceptar.

Damos siguiente hasta finalizar.

Nos conectamos con el Management Studio.

Captura

Como ves, es igual que si lo hacemos a nuestro SQL Server local. El siguiente paso es conectar con Power Bi

Como podeis observar se puede hacer multitud de cosas con python.

Navegando me encuentro con este módulo que tiene hasta un tuto de como trabajar hasta con macros.

https://xlsxwriter.readthedocs.org/en/latest/index.html

Captura

Ya veremos mas módulos interesantes de python. Ahora a jugar.....

....

Otro módulo que tenemos que instalar, xlrd.

El resultado que vamos a tener al utilizarlo

Captura

import xlrd

#abrimos la excel
book = xlrd.open_workbook("E:\empleados.xls")

#numero de pestañas y nombres
print ("Numero de hojas: ", book.nsheets)
print ("Nombre fichero(s): ", book.sheet_names())

#primera hoja
sh = book.sheet_by_index(0)

#numero de filas y columnas
print ("Nombre de hoja: ",sh.name)
print ("Filas: ",sh.nrows)
print ("Columnas: ",sh.ncols)

#recorrer la hoja
for rx in range(sh.nrows):
print (sh.row(rx))

Captura

Ya sólo queda la opción de modificar.

Su documentación: https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966

Vamo a ver  algunas de las posibilidades que nos da python en el tema de formatos que podemos aplicar.

Captura

Y el código

#!/usr/bin/env python
#-*- coding: UTF-8 -*-

import xlwt

fmt = xlwt.easyxf

encabezado = fmt('font: name Arial, color red, bold on;')
centrado = fmt('alignment: horiz centre')

wb = xlwt.Workbook()

full = wb.add_sheet("Taula del 5")

full.write(0, 0, "Tabla del 5", encabezado)

for x in range(1, 11):
full.write(x, 0, 5,centrado)
full.write(x, 1, "x",centrado)
full.write(x, 2, x,centrado)
full.write(x, 3, "=",centrado)
full.write(x, 4, xlwt.Formula('A%s*C%s' % (x+1, x+1)))

wb.save('E:\Tabla_5.xls')

Captura

Como hemos observado metemos el formato centrado y un resaltado.

Captura

Esto suma 2 números

import xlwt

wb = xlwt.Workbook()

ws = wb.add_sheet('Fechas')

ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))

wb.save('E:\suma.xls')

Y ahora temas de fecha

Captura

import xlwt
import datetime

wb = xlwt.Workbook()

ws = wb.add_sheet('Fechas')

estilo = xlwt.easyxf('',num_format_str='DD-MM-YY') ws.write(1, 0, datetime.datetime.now(),estilo)

wb.save('E:\ejemplos.xls')

Captura

Se puede hacer muchas cosas, ya iremos viendo

Todo es documentarse de este módulo y hacer pruebas

https://xlwt.readthedocs.org/en/latest/#

Ahora os toca jugar ...

Para ello vamos a utilizar el módulo xlwt.

Ya hemos visto en el blog como instalar módulos.

Vamos con la práctica

Captura

Y el código:

import xlwt

# creamos el fichero excel
wb = xlwt.Workbook()

# añadimos hoja
ws = wb.add_sheet('Empleados')

# escribimos encabezados
ws.write(0,0,'Cod_Empleado')
ws.write(0,1,'Nombre')

#Escribo columnas
ws.write(1, 0, 1969)
ws.write(1, 1, "Juan Carlos")

#Grabo Fichero ecel.

wb.save('E:\Codigos_empleados.xls')

Como veis, no tiene mucha historía.

Captura

Podemos complicarlo.

 

 

Hace tiempo que sigo esta página y los temas que trata sobre Microsoft Excel. Me parece muy interesante. Puede ser  complemento de SQL Server, por ejemplo en temas de estadísticas, ....y que veras que ya lo he estado utilizando. Yo la pongo en enlaces en este blog y en mis favoritos.

http://excelsignum.com/

Captura

Yo la sigo,  para cuando tu ???