|

楼主 |
发表于 2021-9-15 21:29:29
|
显示全部楼层
- import pandas as pd
- from docxtpl import DocxTemplate
- from docx.enum.table import WD_TABLE_ALIGNMENT # 导入表格对齐方式
- from docx.shared import Cm # 导入单位转换函数
- from docx.oxml.ns import qn # 中文字体
- from docx import Document
- 路径=r'8新新增的分公司分局表格.xlsx'
- 原始数据=pd.read_excel(路径,index_col='分公司')
- # print(数据)
- 文件 = DocxTemplate(r'报告模板 - 副本.docx')
- 需要的列表数据=原始数据.loc['璧山'].values.tolist() #需要的列表数据 无表头,需要额外添加
- print(需要的列表数据)
- 行=len(需要的列表数据)
- 列=len(需要的列表数据[0])
- # print((列))
- 表 = 文件.add_table(行+1, 列, style="Table Grid")
- 表.alignment = WD_TABLE_ALIGNMENT.CENTER # 设置表格为对齐
- 表头列表=['分局','5G竞有我无基站数量']
- # 录入表头数据
- for 表头列 in range(列):
- 表.cell(0, 表头列).text = 表头列表[表头列] # ['分局','5G竞有我无基站数量']里面的第几个
- # 录入数据
- for 行 in range(行):
- # print(行)
- for 列真实值 in range(列): # 遍历列
- # print(列真实值)
- # print(需要的列表数据[行][列])
- 表.cell(行+1, 列真实值).text=str(需要的列表数据[行][列真实值]) # 数据中每一行是一个列表,每一列是一个元素 失败了
- print(表.cell(行+1, 列真实值).text)
- 文件.save(r'13.docx')
复制代码
我先用pandas读取出来,然后筛选插入表格也实现了,但是不能插入到指定的段落中,我看了下全部插入在段尾 |
|