Python往word表格中寫數據的優化


在往word文檔中插入表格后需要給表格賦值,一般都是先遍歷該表格的行,再遍歷列,獲取單元格對象,並給單元格賦值。

貼上一般方法的代碼:

from docx import Document

# 創建doc對象
doc_obj = Document()
rows = 1000
cols = 100
# 創建表格
table = doc_obj.add_table(rows, cols)
for row_index in range(rows):
    for col_index in range(cols):
        # 給單元格對象賦值
        table.cell(row_index, col_index).text = 'test'

此種方法循環套循環,但是由於每次都要獲取單元格對象,獲取單元格對象是個耗時的操作,尤其在表格行列數很大的時候,因此給表格賦值的效率就會變的很差以至於消耗很多時間。

貼上優化過后的代碼:

from docx import Document

# 創建doc對象
doc_obj = Document()
rows = 1000
cols = 100
# 創建表格
table = doc_obj.add_table(rows, cols)
# 一次性獲取所有的單元格,返回值為所有單元格組成的列表
table_cells = table._cells
for i in range(rows):
    # 獲取這一行所有的數據
    row_cells = table_cells[i * cols:(i + 1) * cols]
    for j in range(cols):
        row_cells[j].text = 'test'

同樣是循環套循環,但由於一次就可以獲取所有的單元格對象,避免了耗時的操作,所以效率會比上述方法快很多。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM