Existen paquetes específicos para procesar Excel y Python, como openpyxl; también hay una biblioteca de procesamiento profesional para que la usemos al procesar Word - python-docx (docx para abreviar), que puede realizar operaciones básicas en Microsoft Word (.docx) archivos
Este artículo presenta primero la gramática básica que se usa comúnmente en Python-docx. Antes de comprender la gramática, debe comprender los componentes de la palabra correspondientes a cada comando de python-docx. Como se muestra en la figura siguiente, Documento se refiere a un documento de Word, párrafo corresponde al párrafo, y ejecutar corresponde a Para cada campo en una oración, al realizar ajustes de estilo, los objetos de operación general son todos campo por campo.
1. Instale Python-docx
La instalación se puede realizar con la herramienta pip, ingrese la línea de comando pip install Python-docx
que pueda, vea que la siguiente página representa que se ha instalado correctamente.
2. Crea o abre un documento
Python-docx usa el comando docx al importar el paquete, que es similar al método de importación de la versión Python de Opencv; al crear y abrir archivos, use el comando Document (). Aquí hay algunos puntos a los que debe prestar atención:
- 1. El
Document()
comando es crear un documento en blanco basado en la "plantilla" predeterminada, y luego puede editar el documento; - 2. El
Document(path)
comando significa abrir un archivo docx existente localmente, y ruta significa que si el directorio de almacenamiento no existe, el programa informará un error;
En el siguiente código, se crea un docx en blanco y se asigna al documento
from docx import Document
document = Document()
3. Agrega un párrafo
El párrafo es el componente principal del cuerpo del documento docx. ¿Cómo agregar un párrafo al documento creado? Hay dos formas
1. Insertar después del documento
Este método es relativamente común y simple, el comando es el siguiente
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
En el método, la referencia de párrafo creada apunta al párrafo, indicando la posición del cursor. Algunas operaciones posteriores pueden utilizar la variable de referencia de párrafo como una operación de posicionamiento
2. Insertar delante del lugar designado
La secuencia normal de edición de documentos se edita al final, pero a veces hay menos errores al editar: puede ingresar una palabra o texto, luego se usa delante de la posición especificada de inserción,
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')
Este comando se usa comúnmente en el documento revisado de la escena en lugar de crear una edición.
3. Agregar título
En docx, el texto se dividirá en varias partes con los encabezados de primer, segundo y tercer nivel para que el texto sea más primario y secundario; Python-docx tiene las funciones integradas correspondientes para que las usemos. Los encabezados en el las funciones se dividen en encabezados principales y subtítulos
En el método de función de creación de un título, hay un nivel de parámetro que se puede modificar, si no está configurado, por defecto será el título principal (leve = 0);
document.add_heading('The REAL meaning of the universe')
Los subtítulos se dividen en 1-9 9 niveles, solo modifique el nivel de parámetro
document.add_heading('The role of dolphins', level=2)
4. Agregar salto de página
Edición de texto en Word, desea separar una nueva página al escribir texto, debe agregar un salto de página forzado , el siguiente comando
document.add_page_break()
Cabe señalar aquí que después de agregar un salto de página, los atributos de estilo de párrafo editados en la nueva página se separan de los atributos de párrafo de la página anterior.
5. Únete al formulario
Cree una tabla 2 * 2 en el documento
table = document.add_table(rows=2, cols=2)
Cada celda de la tabla se puede editar en texto y rellenar con color; para una tabla específica, se puede colocar por índice de fila y columna
cell = table.cell(0, 1)
Asignar su contenido de texto
cell.text = 'parrot, possibly dead'
Es demasiado problemático modificar una celda por una. Puede seleccionar la columna especificada a la vez y modificar los datos de la celda uno por uno
row = table.rows[1]
row.cells[0].text = 'Foo bar to you.'
row.cells[1].text = 'And a hearty foo bar to you too sir!'
table.rows[index]
Devuelve el índice del índice de fila especificado, de acuerdo con .rows
, y .cols
una tabla que muestra todas las filas o columnas son iterativas y, por lo tanto, cada celda puede acceder a ellas para cíclico.
for row in table.rows:
for cell in row.cells:
print(cell.text)
Dado que .rows
y .cols
es iterativo, a través de la len()
línea de comando para obtener el número de columnas
row_count = len(table.rows)
col_count = len(table.columns)
Además de las operaciones anteriores, también puede agregar gradualmente comandos de fila y columna a la tabla
row = table.add_row()
col = table.add_col()
Lo mencionado anteriormente crea tablas, celdas modificadas, creando una nueva fila / columna, iteración de fila / columna , al oeste se sumará con un ejemplo simple, el código de finalización es el siguiente:
- 1. El elemento crea una tupla de datos de 3 * 3;
- 2. Cree una tabla en Word, una fila y tres columnas;
- 3. El encabezado de la tabla creada se establece a su vez en Cant, SKU y Descripción;
- 4. Cree los elementos en el artículo a la manera de la tabla 3 fila por fila;
# get table data -------------
items = (
(7, '1024', 'Plush kittens'),
(3, '2042', 'Furbees'),
(1, '1288', 'French Poodle Collars, Deluxe'),
)
# add table ------------------
table = document.add_table(1, 3)
# populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = 'Qty'
heading_cells[1].text = 'SKU'
heading_cells[2].text = 'Description'
# add a data row for each item
for item in items:
cells = table.add_row().cells
cells[0].text = str(item.qty)
cells[1].text = item.sku
cells[2].text = item.desc
Además, también puede modificar el estilo de la tabla, el estilo de la tabla en el documento de Word se puede configurar aquí (método de consulta, coloque el mouse en la miniatura del estilo), pero debe tenerse en cuenta que el espacio en el estilo el nombre debe eliminarse aquí
table.style = 'LightShading-Accent1'
6. Agregar imágenes
La adición de imágenes en python-docx se completa en el siguiente formulario
document.add_picture('image-filename.png')
El agregado anterior es la ruta del archivo local, además del objeto similar a un archivo ,
Este método es muy conveniente para leer imágenes de la base de datos o de la red.
Modificar el tamaño de la imagen
La imagen agregada de python-docx indica el tamaño nativo por defecto. Cuando se agrega una imagen normal, habrá un espacio en blanco de 4.167 pulgadas en un lado de la misma imagen, que es aproximadamente la mitad del ancho del papel; al obtener la imagen deseada tamaño de la imagen, puede especificar el ancho o establecer la altura en una unidad más conveniente
from docx.shared import Inches
document.add_picture('image-filename.png', width=Inches(1.0))
7, aplicar estilo de párrafo
Hay dos formas de establecer el estilo de párrafo, una se puede establecer al crear
document.add_paragraph('Lorem ipsum dolor sit amet.', style='ListBullet')
Una forma es configurarlo después de crearlo
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')
paragraph.style = 'List Bullet'
El estilo python-docx y la palabra están en correspondencia. Algunas de las palabras de la palabra se pueden establecer aquí. El método para obtener el nombre del estilo es el mismo que el método de tabla de configuración anterior; tenga en cuenta que cuando se usa diyi cuando se crea , el nombre original debe eliminarse al configurarlo . Como se muestra en la primera parte del código anterior
8. Aplicar las fuentes que se van a ennegrecer y en cursiva
Antes de poner en cursiva y ennegrecer la fuente, es necesario comprender qué se hace en un párrafo. En resumen, hay dos partes:
- 1. Un párrafo tiene todo el formato a nivel de bloque , como pestañas, altura de línea, pestañas, etc .;
- 2, formato de nivel de carácter , como negrita, cursiva, la aplicación es
run
un objeto, todo el contenido debe estar en un párraforun
y contiene solo un,
Ejecutar un objeto contiene un atributo .bold
y le .italic
permite establecer su valor
paragraph = document.add_paragraph('Lorem ipsum ')
run = paragraph.add_run('dolor')
run.bold = True
paragraph.add_run(' sit amet.')
El último formato de texto creado en el código anterior se ve así: Lorem ipsum dolor sit amet.
Tenga en cuenta que cuando establece negrita o cursiva, puede .add_run()
ordenar directamente en el lado derecho
paragraph.add_run('dolor').bold = True
# is equivalent to:
run = paragraph.add_run('dolor')
run.bold = True
# except you don't have a reference to `run` afterward
9. Aplicar estilo de personaje
También puede definir estilos de carácter (estilos de carácter ), agregar una nueva línea de objetos de ejecución al definir; por ejemplo
paragraph = document.add_paragraph('Normal text, ')
paragraph.add_run('text with emphasis.', 'Emphasis')
Crea un texto arriba: texto normal, texto con énfasis en ellos. text with emphasis.
Algunas aplicaciones Emphasis(强调)
en formato de caracteres
El código anterior también se puede cambiar a;
paragraph = document.add_paragraph('Normal text, ')
run = paragraph.add_run('text with emphasis.')
run.style = 'Emphasis'
Al igual que con el estilo de párrafo, y el nombre del estilo Word UI
en el mismo estilo en el administrador de Word, ¡quién puede encontrarlo!