Directorio de artículos
Prefacio
La mayoría de las veces, cuando se usa Python para operar Word, es una operación de escritura. También hay algunos casos en los que se utilizan operaciones de lectura, que se explicarán en este tutorial. Este curso utiliza principalmente las siguientes cuatro bibliotecas. Instálelas con anticipación. .
1. Instalación ambiental
Actualizar pip (para facilitar la instalación de las últimas bibliotecas)
python -m pip install -U pip setuptools
python-docx (usamos esta biblioteca para la mayoría de las operaciones)
metodo de instalacion:
pip instala python-docx
Instrucciones:
de docx import Documento
de docx.shared import
Documentación oficial en pulgadas:
https://python-docx.readthedocs.io/en/latest/index.html
win32com (utilizado principalmente para convertir documentos a formato docx)
metodo de instalacion:
Cómo utilizar pip install pypiwin32
:
importar win32com
desde win32com.client importar envío,
documentación oficial constante:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word?view=word-pia
mailmerge (utilizado para generar una gran cantidad de documentos del mismo tipo según plantillas)
metodo de instalacion:
instalación de pip docx-mailmerge
Instrucciones:
de mailmerge importar
la documentación oficial de MailMerge:
https://pypi.org/project/docx-mailmerge/
matplotlib (biblioteca de dibujo de Python, explicada brevemente en este número, habrá cursos especiales más adelante)
metodo de instalacion:
instalación de pip en matplotlib
Instrucciones:
importe matplotlib.pyplot como
documentación oficial de plt:
https://matplotlib.org/3.2.2/tutorials/introductory/sample_plots.html
2. Pasos de uso
1. Importar la biblioteca
Código de ejemplo 1:
from docx import Document
document = Document()
document.save('new.docx')
El efecto es el siguiente:
2. Leer datos
El código es el siguiente (ejemplo):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
Los datos solicitados por la red URL utilizada aquí.
Código de muestra 0.1 Python-docx nuevo document.py:
from docx import Document
def GenerateNewWord(filename):
document = Document()
document.save(filename)
if __name__ == "__main__":
print("大家好!我们今天开始学习word文档自动化")
print("我们先来直接生成一个名为‘new.docx’的文档")
document = Document()
document.save('new.docx')
print("没错,里面什么都没有")
# 我是华丽的分隔符
print("我们使用函数生成一个word文档试试")
newname = '使用函数生成的文档.docx'
GenerateNewWord(newname)
Python-docx edita documentos existentes
Muchas veces necesitamos agregar nuestro propio contenido a un documento de Word existente, así que veamos rápidamente cómo hacerlo~
Documento antiguo:
Tal vez dirás, no me equivoco, ¿solo estas tres frases? Sí, con estas tres frases has completado la copia del documento antiguo, si quieres modificarlo ¡simplemente añade el contenido directamente!
El efecto es el siguiente:
win32com convierte documentos a docx
Código de muestra:
import os
from win32com import client as wc
def TransDocToDocx(oldDocName,newDocxName):
print("我是 TransDocToDocx 函数")
# 打开word应用程序
word = wc.Dispatch('Word.Application')
# 打开 旧word 文件
doc = word.Documents.Open(oldDocName)
# 保存为 新word 文件,其中参数 12 表示的是docx文件
doc.SaveAs(newDocxName, 12)
# 关闭word文档
doc.Close()
word.Quit()
print("生成完毕!")
if __name__ == "__main__":
# 获取当前目录完整路径
currentPath = os.getcwd()
print("当前路径为:",currentPath)
# 获取 旧doc格式word文件绝对路径名
docName = os.path.join(currentPath,'旧doc格式文档.doc')
print("docFilePath = ", docName)
# 设置新docx格式文档文件名
docxName = os.path.join(currentPath,'新生成docx格式文档.docx')
TransDocToDocx(docName,docxName)
El efecto es el siguiente:
win32com opera palabra
Abra un nuevo documento de Word y agregue contenido
Código de muestra
import win32com
from win32com.client import Dispatch, constants
import os
# 创建新的word文档
def funOpenNewFile():
word = Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# word = DispatchEx('Word.Application')
# 如果不声明以下属性,运行的时候会显示的打开word
word.Visible = 1 # 0:后台运行 1:前台运行(可见)
word.DisplayAlerts = 0 # 不显示,不警告
# 创建新的word文档
doc = word.Documents.Add()
# 在文档开头添加内容
myRange1 = doc.Range(0, 0)
myRange1.InsertBefore('Hello word\n')
# 在文档末尾添加内容
myRange2 = doc.Range()
myRange2.InsertAfter('Bye word\n')
# 在文档i指定位置添加内容
i = 0
myRange3 = doc.Range(0, i)
myRange3.InsertAfter("what's up, bro?\n")
# doc.Save() # 保存
doc.SaveAs(os.getcwd() + "\\funOpenNewFile.docx") # 另存为
doc.Close() # 关闭 word 文档
word.Quit() # 关闭 office
if __name__ == '__main__':
print("当前文件路径名:",os.getcwd())
print("调用funOpenNewFile()")
funOpenNewFile()
Abra un documento de Word existente y agregue contenido
Requisitos previos:
import win32com
from win32com.client import Dispatch, constants
import os
# 打开已存在的word文件
def funOpenExistFile():
word = Dispatch('Word.Application')
# 或者使用下面的方法,使用启动独立的进程:
# word = DispatchEx('Word.Application')
# 如果不声明以下属性,运行的时候会显示的打开word
word.Visible = 1 # 0:后台运行 1:前台运行(可见)
word.DisplayAlerts = 0 # 不显示,不警告
doc = word.Documents.Open(os.getcwd() + "\\3.1 win32com测试.docx") # 打开一个已有的word文档
# 在文档开头添加内容
myRange1 = doc.Range(0, 0)
myRange1.InsertBefore('Hello word\n')
# 在文档末尾添加内容
myRange2 = doc.Range()
myRange2.InsertAfter('Bye word\n')
# 在文档i指定位置添加内容
i = 0
myRange3 = doc.Range(0, i)
myRange3.InsertAfter("what's up, bro?\n")
# doc.Save() # 保存
doc.SaveAs(os.getcwd() + "\\funOpenExistFile.docx") # 另存为
doc.Close() # 关闭 word 文档
word.Quit() # 关闭 office
if __name__ == '__main__':
print("当前文件路径名:",os.getcwd())
print("调用funOpenExistFile()")
funOpenExistFile()
El efecto es el siguiente:
Resumir
De lo anterior es de lo que hablaré hoy. Este artículo solo presenta brevemente el uso de la automatización de oficinas.