需求:有一个汇总表2025pingshen4.xlsx,记录了患者就医信息。需要提取某些内容生成单独的每一张专家评审意见表(固定格式)。
python
from openpyxl import Workbook, load_workbook
import os
import shutil
def create_all_file2():
# openpyxl库仅对xlsx文件有效,xls(1997-2003)的表格文件不行
wb_r = load_workbook("E:/code/py_code/pro1/2025pingshen4.xlsx")
# 获取一个worksheet,可以通过名称或者索引获取
# ws = wb_r['shiwu'] # 通过名称获取
ws = wb_r.worksheets[0] # 通过索引获取,索引从0开始
# xlsx表的行数序号从1开始, 表格的前两行是表头,第3行开始是患者数据
for row in ws.iter_rows(min_row=3, values_only=True):
# 读取每行的数据,是一个元组,元组下标从0开始
# (0'序号', 1'业务类型', 2'姓名', 3'性别', 4'人员类别', 5'银行名称', 6'开户名',
# 7'银行账号', 8'业务登记号', 9'住院号', '待遇类别', 11'结算时间', 12'就诊日期', 13'因伤诊断',
# 14'因病诊断', 15'医院名称', 16'社会保障号', 17'单位名称', 18'人员性质', 19'辖区', 20'业务交接号',
# 21'审定结算单时间', 22'是否日间手术', 23'总费用', 24'科室名称', 25'床位号', 26'核准医疗费',
# 27'起付标准', 28'社保工伤基金支付', 29'个人自费费用', 30'专家评审意见', 31'医院意见')
xingming = row[2]
xingbie = row[3]
yewuhao = row[8] # 业务登记号
zhuyuanhao = row[9] # 住院号
js_shijian = row[11] # 结算时间
jz_riqi = row[12] # 就诊日期
ys_zhenduan = row[13] # 因伤诊断
yiyuan = row[15] # 医院名称
jin_e = row[28] # 金额
zj_yijian1 = row[30] # 初审专家意见
yy_yijian = row[31] # 医院意见
source_file = 'E:/code/py_code/pro1/dange.xlsx' # 需要提取数据到指定格式的文件
# 目标文件路径(不包括新文件名)
destination_dir = 'E:/code/py_code/pro1/output/'
# 完整的目标文件路径(包括新文件名),这里以业务登记号命名每个文件
destination_file = destination_dir + yewuhao + '.xlsx'
# 复制文件到目标目录,同时命名为新文件名
shutil.copyfile(source_file, destination_file)
# 读取单元格B1的值,使用cell方法
# value = ws.cell(row=1, column=2).value
if not os.path.exists(destination_file):
exit(1)
# 创建一个Workbook对象,这将会创建一个新的Excel文件
# wb_w = Workbook()
wb_w = load_workbook(destination_file)
# 获取当前活跃的worksheet
ws = wb_w.active
# 改变worksheet的名称
ws.title = zhuyuanhao
# 在单元格B2, D2...写入数据
ws['B2'] = xingming
ws['D2'] = xingbie
ws['F2'] = zhuyuanhao
ws['B3'] = js_shijian
ws['D3'] = jz_riqi
ws['F3'] = ys_zhenduan
ws['B4'] = yiyuan
ws['F4'] = jin_e
ws['B5'] = zj_yijian1
ws['B6'] = yy_yijian
# 在单元格B1写入数据
# ws.cell(row=1, column=2).value = "Welcome to openpyxl"
# 保存Excel文件
# wb_w.save("E:/code/py_code/pro1/output/dong_" + yewuhao + ".xlsx")
wb_w.save(destination_file)
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
# 加载现有的Excel文件
create_all_file2()
print_hi(' ok')