【学习笔记4】excel批量输出数据到Word中的表格

先贴下项目需求。

 

 需要从图1表格中将一个项目的数据分条录入图2中word中的表格。

我的思路是先遍历表格,将项目名存为一个集合,这样就得到了不重复的项目名信息。

这里遇到了一个问题,读取数据的时候需要保留部分字段数字的文本格式,例如01,02之类的,如果不进行任何操作直接读取的话,读取的是数字格式,这里就需要给要保留格式的列一个指定格式。

df = pd.read_excel("GZB.xlsx",sheet_name="Sheet1",dtype={"一级类":object,"二级类":object})
df.set_index("序号",inplace = True)
xmm = set(df["项目名"])

然后我们遍历集合,将项目名相等的保存为一个DataFrame。

for i in xmm:
    a = df.loc[df["项目名"]==i,:]

接着就是把数据输出到模板表格中了。doc,tables相当于是整个文档中表格的列表,如果要用到第一张表,在写入的时候就选择doc.tables[0]。

表格中的合并单元格是算作两个或多个单元格表示的,例如第一列的一二行是合并单元格,它们在python中还是作为同一列的两个单元格计数的。

hdr = tables2.rows[b+2].cells
        hdr[0].text = str(b + 1)
        hdr[1].text = str(a.iloc[b]["村名"])
        hdr[2].text = str(a.iloc[b]["一级类"])
        hdr[3].text = str(a.iloc[b]["汇总"])
        hdr[4].text = str(a.iloc[b]["二级类"])
        hdr[5].text = str(a.iloc[b]["汇总"])
        hdr[6].text = str(a.iloc[b]["汇总"])
        hdd = tables2.rows[22].cells
        hdd[3].text = str(a.iloc[b]["合并"])
        hdd[5].text = str(a.iloc[b]["合并"])
        hdd[6].text = str(a.iloc[b]["合并"])

以上就是把所有数据依次填入表格。

还可以依次设置每个单元格的居中格式等。

        for row in range(23):
            for col in range(7):
                cell = tables2.cell(row,col)
                pa = cell.paragraphs[0]
                pa.alignment = WD_ALIGN_PARAGRAPH.CENTER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值