¿Cómo usar Python para realizar la automatización de informes? Permitirle completar el trabajo de manera más eficiente

Si podemos automatizar el informe, ahorraremos mucho tiempo y completaremos el trabajo de manera más eficiente. Entonces, ¿cómo usar Python para realizar la automatización de informes? Este artículo presentará las funciones comunes de xlwt, xlrd, xlutils, la aplicación de fórmulas cuando xlwt escribe Excel y xlwt escribe en un directorio específico para llevar a todos a automatizar el informe.

 

1, Python escribe Excel

(1) Preparación para instalar xlwt: Ingrese pip install xlwt o easy_install xlwt en el terminal para importar el paquete xlwt:

importar xlwt # escribir

(2) Cree un nuevo libro de trabajo y agregue una hoja en el tutorial básico: cree un nuevo libro de trabajo y luego agregue la hoja

f = xlwt.Workbook () # Crear libro de trabajo 
sheet1 = f.add_sheet (u'sheet1 ', cell_overwrite_ok = True)

Puede agregar varias hojas a una hoja de Excel para escribir contenido en la hoja: 

La función sheet.write puede pasar tres parámetros, i (parámetro 1), j (parámetro 2) y almacenar el contenido (parámetro 3)

sheet1.write (i, j, 'fila i y columna j almacenan este contenido', estilo)

La función realizada por esta declaración es almacenar el contenido del tercer parámetro en la fila i-ésima y la columna j-ésima. El cuarto parámetro es el estilo (como fuente y fondo), y el cuarto parámetro puede omitirse. 

Combinar celdas y escribir contenido:

sheet1.write_merge (x, x + m, y, y + n, '内容', estilo)

Esta declaración y significa que la matriz en la columna [x: x + m] fila [y: y + n] se fusiona en una celda. Almacene el contenido # del quinto parámetro. Del mismo modo, el parámetro de estilo se puede pasar sin parámetros. Finalmente, use f.save ('demo') para guardar f para sobresalir

(3) En el combate real, primero podemos crear un nuevo libro de trabajo, luego agregarle dos hojas y luego verificar el efecto

# coding = utf-8 
import 
xlwt f = xlwt.Workbook () # Crear libro de trabajo 

 sheet1 = f.add_sheet (u'table one ', cell_overwrite_ok = True) 

 

sheet2 = f.add_sheet (u'table two', cell_overwrite_ok = True ) 

 

guardar ('xlwt_tutorial')

Comenzamos a escribir contenido en la hoja, sin usar el parámetro de estilo primero solo use la función de escritura

import 
xlwt f = xlwt.Workbook () # Crear 
hoja de libro de trabajo1 = f.add_sheet (u'Table one ', cell_overwrite_ok = True) 
sheet2 = f.add_sheet (u'Table two', cell_overwrite_ok = True) 
fila = 0 
temp = [ 
u'name ', u'age', u'school ', u'professional '] 
para pos, v en enumerate (temp): sheet1.write (fila, pos, v) 
fila + = 1 
hoja1.write (fila , 0, u ' 
张三') sheet1.write (fila, 1,18) 
sheet1.write (fila, 2, u'Tsinghua University ') 
fila + = 1 
hoja1.write (fila, 0, u' 李四 ' ) 
sheet1.write (fila, 1,20) 
sheet1.write (fila, 2, 
u'Peking University ') f.save (' xlwt_tutorial ')

De esta manera, hemos creado una tabla con 3 filas y 4 columnas.

(Los valores de fila y columna de la función de escritura comienzan desde 0) A continuación, usamos la función write_merge para fusionar las celdas y escribir una línea de código antes de f.save:

sheet1.write_merge (1,2,3,3, u'Chinese Language and Literature ')

Combine las filas 2-3, columna 4 2. pythonxd read excel 

 (1) Preparación para instalar xlrd: Ingrese pip install xlrd o easy_install xlrd en la terminal para introducir el paquete xlrd:

importar xlrd # leer

(2) Tutorial básico y operación real Abra un Excel y luego muestre los nombres de todas las hojas

# coding = utf-8 
import xlrd 
import uniout 
f = xlrd.open_workbook (r'xlwt_tutorial ') 
print f.sheet_names () 
salida: [u' 表 一 ', u' 表 二 '] 

Consigue todas las sábanas en la mesa

para i en rango (len (f.sheet_names ())): 
sheet1 = workbook.sheet_by_index (i)

Obtenga el contenido en la hoja

# coding = utf-8 
f = xlrd.open_workbook (r'xlwt_tutorial ') 
sheet1 = f.sheet_by_index (0) #Open the first sheet 
sheet2 = f.sheet_by_name (u' 表 二 ') #Open the name for the small grape hoja 
# 

Nombre de la hoja de salida , número de filas, número de columnas imprimir sheet1.name, sheet1.nrows, sheet1.ncols 
imprimir sheet2.name, sheet2.nrows, sheet2.ncols El 
resultado es: Tabla 1 3 4 Tabla 2 0 0 
imprimir hoja1. row_values ​​(1) 
# Obtenga el contenido de la hoja de impresión de la segunda fila1.col_values ​​(2) # Obtenga el contenido de la tercera columna El 
resultado es: [u '张三', 18.0, u'Tsinghua University ', u'Chinese Language and Literature'] (u 'School', 
u'Tsinghua University ', u'Peking University'] 

# Obtener el contenido de la celda print sheet1.cell (1,0) .value 

# Obtener el tipo de datos del contenido de la celda 
print sheet1.cell (1,1). ctype 

#ctype: 0 vacío, 1 cadena, 2 números, 3 fechas, 4 booleanos, 5 errores La 
salida es: Zhang San 2

3. Funciones comunes de xlutils

 (1) Preparación para instalar xlutils: Ingrese pip install xlutils o easy_install xlutils en la terminal para presentar el paquete xlutils:

importar xlutils

(2) Podemos encontrar un problema con la función de copia en xlutils y queremos editar un Excel *** almacenado. Sin embargo, xlrd es un modo de solo lectura y no se puede escribir. Y xlwt es un modo de solo escritura y no se puede leer en un archivo de Excel para editarlo. Podemos usar xlrd para abrir un documento, y luego usar la función de copia en xlutils para copiar el documento * y luego editarlo.

importar xlrd 
desde xlutils.copy importar copiar 
f = xlrd.open_workbook (r'xlwt_tutorial ') 
wb = copy (f) # copiar f a wb 
sheet1 = wb.get_sheet (0) # abrir hoja 
imprimir sheet1.name 
sheet1.write ( 3,0, 'cambio') La 
salida de 
wb.save ('xlwt_tutorial') es: La tabla de salida en la Tabla 1 ha cambiado.

(4) La aplicación de la fórmula cuando xlwt escribe en Excel, escribimos para escribir una tabla con xlwt

coding = utf-8 
import 
xlwt f = xlwt.Workbook () # Crear 
hoja de libro de trabajo1 = f.add_sheet (u'score statistics ', cell_overwrite_ok = True) 
mdict = {"mono": {"escritura": 80, "lectura ": 60", "hablar": 70, "escuchar": 60}, 
"uva": {"escribir": 100, "leer": 80, "hablar": 70, "escuchar": 60}} 
sheet1.write (0,0, 
u'score statistics ') sheet1.write (1,0, u'calligraphy score') 
sheet1.write (2,0, 
u'reading score ') sheet1.write (3,0, u' speech Score ') 
sheet1.write (4,0, u'listening score') 
temp = ['writing', 'reading', 'talking', 'listening'] 
para pos, name in enumerate (mdict): 
sheet1.write ( 0, pos + 1, nombre) 
para p,v en enumerate (temp): 
sheet1.write (p + 1, pos + 1, mdict [name] [v]) 
f.save ('estadísticas de puntuación')

Cuente la puntuación total de uva y la puntuación total de mono: agregue el código antes de f.save:

sheet1.write (5,0, u '总分 统计') 
para i en rango (len (mdict)): 
forstr = chr (65 + i + 1) + '2 +' + chr (65 + i + 1) + '3 +' + chr (65 + i + 1) + '4 +' + chr (65 + i + 1) + '5' 
imprimir forstr   
 sheet1.write (5, i + 1, xlwt.Formula (forstr) ) 
 输出 为 :
B2 + B3 + B4 + B5 
C2 + C3 + C4 + C5

5, xlwt escribe en un directorio específico

 Debido a las capas de código, el marco general del código es hermoso. Necesitamos escribir el archivo en un directorio específico. Pero no hay función para escribir directamente en un directorio específico en xlwt.

Por lo tanto, use la función shutil.move para mover el archivo a un directorio específico:

## coding = utf-8 
import 
xlwt 
import os import shutil 
path = '../sheet/' 
isExists = os.path.exists (path) # Determine si el directorio existe 
si no es Exists: # Si el directorio no existe, cree un nuevo directorio 
os .makedirs (ruta) 
f = xlwt.Workbook () # Crear libro de trabajo 
sheet1 = f.add_sheet (u'score stats ', cell_overwrite_ok = True) 
mdict = {"monkey": {"writing": 80, "reading": 60, "hablar": 70, "escuchar": 60}, 
"uva": {"escribir": 100, "leer": 80, "hablar": 70, "escuchar": 60}} 
sheet1.write (0 , 0, 
u'score stats ') sheet1.write (1,0, u'calligraphy score') 
sheet1.write (2,0, 
u'reading score ') sheet1.write (3,0, u'speech score' ) 
sheet1.write (4,0, u '听力 得分 ') 
temp = [' escribir ',' leer ',' hablar ',' escuchar '] 
para pos, nombre en enumerate (mdict):
sheet1.write (0, pos + 1, name) 
para p, v en enumerate (temp): 
sheet1.write (p + 1, pos + 1, mdict [name] [v]) 
sheet1.write (5,0, u '总分 统计') 
para i en rango (len (mdict)): 
forstr = chr (65 + i + 1) + '2 +' + chr (65 + i + 1) + '3 +' + chr ( 65 + i + 1) + '4 +' + chr (65 + i + 1) + '5' 
imprime forstr 
sheet1.write (5, i + 1, xlwt.Formula (forstr)) 
f.save ('得分 统计') 
shutil.move (u' 得分 统计 ', ruta)

Los anteriores son los pasos específicos del uso de python para realizar la automatización de informes. ¿Lo ha dominado? Si no ha comenzado con Python, no entiendo cómo usar python para automatizar informes.

Si quieres aprender Python o estás aprendiendo Python, hay muchos tutoriales de Python, pero ¿es el último? Tal vez haya aprendido algo que la gente podría haber aprendido hace dos años, y aquí comparto una ola de los últimos tutoriales de Python para 2020. ¡Cómo obtenerlo, puede obtenerlo gratis editando la "Información" de la carta privada!

 

Supongo que te gusta

Origin www.cnblogs.com/python0921/p/12760814.html
Recomendado
Clasificación