为python-docx插入表格提速

为python-docx插入表格提速


用Python-docx在Word中插入表格时,速度慢到无法接受(插入500行9列的表格,大概耗时2~3分钟),也是电脑的性能比较差,但无法保证用户的电脑性能会高到哪儿去。

搜索解决方案,多是使用Table._cells变量代替Table.add_row()函数,但这方案在我这儿竟然没起什么作用,不知道是哪儿的问题。贴一篇此方案的参考:“代码一字狂” 写的 python-docx 添加表格时很慢的解决方法

后来尝试减少插入数据的行数,发现每次调用add_table()函数插入3行表格时,插入500行的总体耗时最短(6秒左右),这虽然与常识(重复的操作在批量执行时性能最好)相悖,但确实解决了问题。看来python-docx内部有些特殊的处理。

不算正式的python程序员,没有继续深入探索,请大家见谅哈!

相关代码如下,比较简单,没加注释:

	RowPerTimes = 3    
    rowIndex = 0
    isOver = False
    while True:
        remainder = totalCount - rowIndex
        if remainder > RowPerTimes:
            remainder = RowPerTimes
        else:
            isOver = True

        table = doc.add_table(rows=remainder, cols=columnCount, style="Table Grid")
        for i in range(remainder):
            rowCells = table.row_cells(i)
            colIndex = 0
            for c in data[rowIndex]:
                rowCells[colIndex].text = c
                colIndex += 1
            rowIndex += 1
        
        if isOver:
            break
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值