双乳被一左一右吃着的感觉|国产成人精品18|打视频真实|国产清纯在线一区二区WWW|一区一区三区四区产品动漫|国产网红传媒精品喷水在线|久久久久久国产a免费观看

電子表格批量導入數據 電子表格批量導入準考證信息

在日常工作中,為了統計分析數據,跟進項目進度,都會建立各種表格臺帳,常常需要從表格提取關鍵數據,撰寫WORD文件,進行管理預警通知 。
如果數量較少,手動提取處理,應該問題不大,但如果多達幾十份,甚至上百份,工作量將會很大 , 且均是重復性的工作,這就是今天的問題:如何實現從表格讀取多條數據,自動批量導入WORD表格中,生成通知文件?大家可能使用過WORD的郵件合并功能,可以方便實現從EXCEL表中讀取數據,批量打印WORD文檔,但它與數據源一一對應,如果滿足條件的是多條數據時 , 就很不方便了 。下面介紹利用python , 實現從EXCEL表中讀取數據 , 批量導入WORD模板表格中,自動生成文件并保存 。
1、導入庫
import pandas as pd
from docx import Document
from docx.shared import Pt
from docx.enum.table import WD_ALIGN_VERTICAL
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
如果運行時,提示沒有對應庫,使用 pip 在命令行中安裝這些庫 。
2、讀取數據
df = pd.read_excel(example .xlsx,sheet_name=1)
文件位置根據實際替換,數據1默認第一個表 。
3、設置字體樣式
font_size = 12 # 字體大小
font_name = 仿宋 # 字體名稱
可根據需要自行更改
4、生成單位名稱列表
#抽取單位名稱存為列表 , 用于for循環
xmlist=df[單位名稱].values.tolist()
xmlist=list(set(xmlist)) #名稱去重
5、載入Word 模板文件
doc = Document(通知.docx)
target_table = doc.tables[0] # 模板中只有一個表格
target_row = 1 # 要插入數據的目標行
6、替換模板中的單位名稱
for run in doc.paragraphs[1].runs:
run.text = run.text.replace(xmname,xmname)
將從列表中讀取的單位名稱 , 替換模板指定位置文字 。
7、選擇符合特定條件的數據
a.條件根據需要進行設定 , 注意同時滿足的條件用&連接
condition = (df[列1] == xmname) & (df[列2] > 0) & (df[列3] < 1)
filtered_data = https://www.73cha.cn/shuma/df.loc[condition]
只保留需要的數據列
filtered_data = https://www.73cha.cn/shuma/filtered_data[["列1","列2","列3"]]
b.設置數據是否為空的判斷,因為部分單位不滿足條件,沒有必要生成空的WORD文檔,即當為空時,跳出當前循環 。
if filtered_data.empty:
continue
8、將數據插入模板表格的指定位置
for index, row in filtered_data.iterrows():
new_row = target_table.add_row().cells
for col_index, column in enumerate(filtered_data.columns):
cell = new_row[col_index]
cell.text = str(row[column])
9、設置字體樣式
導入上面的字體 , 垂直位置居中,因第三列是數字,靠右好看些 , 所以加了if判斷,即前兩列靠左 , 第三列靠右 。
cell.paragraphs[0].runs[0].font.size = Pt(font_size)
cell.paragraphs[0].runs[0].font.name = font_name
cell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER
if col_index < 2: # 前兩列水平靠左
cell.paragraphs[0].alignment =WD_PARAGRAPH_ALIGNMENT.LEFT
else: # 第三列水平靠右
cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
10、增加新行,方便插入下一條數據
target_row += 1
11、保存生成的文件
doc.save("D:\\通知\\"+xmname+".docx")
文件路徑注意用雙斜杠"\\" , 文件名稱用對應數據 。
【電子表格批量導入數據 電子表格批量導入準考證信息】好了,先向領導報怨工作量太大,然后泡杯茶,坐等下班

電子表格批量導入數據 電子表格批量導入準考證信息

文章插圖