¡El paquete python-docx maneja comandos de operación comunes para archivos de Word!

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.

Snipaste_2020-10-03_09-06-01.jpg

1. Instale Python-docx

La instalación se puede realizar con la herramienta pip, ingrese la línea de comando pip install Python-docxque pueda, vea que la siguiente página representa que se ha instalado correctamente.

Snipaste_2020-09-26_08-41-23.jpg

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 .colsuna 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 .rowsy .colses 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 runun objeto, todo el contenido debe estar en un párrafo runy contiene solo un,

Ejecutar un objeto contiene un atributo .boldy le .italicpermite 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 UIen el mismo estilo en el administrador de Word, ¡quién puede encontrarlo!

Snipaste_2020-10-03_09-01-18.jpg

Supongo que te gusta

Origin blog.csdn.net/weixin_42512684/article/details/109264171
Recomendado
Clasificación