高版本lxml没有etree模块。有网友确定lxml4.2.5版本带有etree模块,且该版本lxml支持python3.7.4版本。安装命令:
pip install lxml==4.2.5 (若python-docx 使用有问题,需要查看lxml版本)
pip install python-docx
'''
python自动化办公
说明:
1.运行以下程序的时候要关掉对应的.docx文件,否则会报错
'''
#001、创建一个可操作的word文件【相当于打开了一个空白文档】
from docx import Document
document = Document()
#002、添加标题
document.add_heading('这是一级标题', level=1)
document.add_heading('这是二级标题', level=2)
#003、添加段落
paragraph = document.add_paragraph('这里是内容')
#004、添加换页符
document.add_page_break()
document.add_heading('这是第二页一级标题', level=1)
document.add_heading('这是第二页二级标题', level=2)
#005、添加表格
document.add_page_break()
document.add_heading('这里是第三页')
document.add_heading('接下来介绍如何添加表格:',level=2)
table = document.add_table(rows=2, cols=2)
for i in range(2):
for j in range(2):
cell = table.cell(i,j)
cell.text = f'填充单元格({i},{j})'
#006、尝试按行输入表格内容
document.add_heading('接下来介绍如何按行输入表格内容:',level=2)
table = document.add_table(rows=2, cols=3)
for i in range(2):
row = table.rows[i]
row.cells[0].text = f'第{i}行,cells[0]填充内容'
row.cells[1].text = f'第{i}行,cells[1]填充内容'
row.cells[2].text = f'第{i}行,cells[2]填充内容'
#007、打印上一个表格内容
for row in table.rows:
for cell in row.cells:
print(cell.text)
'''
第0行,cells[0]填充内容
第0行,cells[1]填充内容
第0行,cells[2]填充内容
第1行,cells[0]填充内容
第1行,cells[1]填充内容
第1行,cells[2]填充内容
'''
#008、获取表格有多少行多少列
row_count = len(table.rows)
col_count = len(table.columns)
print(row_count,col_count) #2 3
#009、新建表格的另一种方式
# get table data -------------
items = (
(7, '1024', 'Pl'),
(3, '2042', 'Fur'),
(1, '1288', 'Fr'),
)
document.add_heading('常用的一种添加表格的方式:',level=2)
# add table ------------------
table = document.add_table(1, 3)
# populate header row --------
heading_cells = table.rows[0].cells
heading_cells[0].text = '序号'
heading_cells[1].text = '学号'
heading_cells[2].text = '姓名'
# add a data row for each item
for x,xu,nm in items:
cells = table.add_row().cells
cells[0].text = str(x)
cells[1].text = xu
cells[2].text = nm
#010、保存文件
document.save('demo.docx')
pip install pillow
pip install lxml
pip install python-pptx
pip install PyPDF2