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