openpyxl

mac2022-06-30  23

首先确保你已经导入openpyxl包,使用安装包import openpyxl;如若没有,去cmd窗口pip install openpyxl;若在.pip install openpyxl出现问题:Command “python setup.py egg_info” failed with error code 1,可以参考 使用:python -m pip install --upgrade --force pip pip install setuptools==33.1.1相关注意事项:

excel表的文字编码如果是“gb2312” 读取后就会显示乱码,需要转成Unicodeworkbook:工作簿,一个Excel文件,可以包含多个工作表sheet:工作表,默认表明为sheet1,sheet2…cell:单元格,存储数据对象(这个需要主意)新建Excel文件wb = openpyxl.Workbook() # 同时默认创建一个sheetwb.save("501.xlsx")#激活新建的文件501.xlsx123新建数据表# 新建sheet表wb.create_sheet(index=2, title="sheet2") # 可通过index控制创建的表的位置12打开已有的excelwb = openpyxl.load_workbook("501.xlsx")1根据表名打开sheet表sheet1 = wb[sheet_names[0]] # 打开第一个 sheet 工作表1获取所有表名sheet_names = wb.sheetnames1根据表名删除sheet表wb.remove(wb[sheet_names[2]])#下表从零开始,此时删除的是第三张表12获取最大列数sheet1_max_colum = sheet1.max_column1获取最大行数sheet1_max_row = sheet1.max_row1获取单元格A1值A1_value = sheet1['A1'].value #不区分大小写12获取单元格A1列值A1_column = sheet1['A1'].column1获取单元格A1行号A1_row = sheet1['A1'].row1获取第x行第y列的单元格值A1 = sheet1.cell(row=x, column=y).value # 获取第一行第一列的单元格值1修改第x行第y列的单元格的值sheet1.cell(row=x, column=y, value="12") # 修改第一行第二列的单元格的值为B1sheet1["A1"] = "12"#修改A1单元格值为12sheet1["B11"] = "11" # 新增B11单元格的值为B11123修改数据表名称sheet1.title = "sheet_501" 1保存文件#注意不保存文件,文件打开时文件保存会出错#一定要牢记这一点,就这一点卡了我一个多小时wb.save("test.xlsx")123#另附上读取指纹考勤表的脚本#from openpyxl import load_workbookimport openpyxl

def get_sheet(): wb = openpyxl.load_workbook('501.xlsx') # 打开已有文件 print( "已新建表单" ) # 新建表单,储存最终信息 sheet_names = wb.sheetnames # 列表,获得所有表单名 sheet = wb[sheet_names[0]] # 打开sheet表 sheet2 = wb[sheet_names[1]] sheet2.cell( row=1, column=3 ).value name = sheet['c1'].value old = sheet['d1'].value[7:9] row1,column1,all = 1,1,0 sheet2.cell(row=1,column=1,value=name) # 写入第一个人的姓名 result = 0 row1 = row1 + 1 # 获取c列所有数据 for i in range(sheet.max_row): day = sheet.cell(row=i+1, column=4).value[7:9] if old == day and name == sheet.cell(row=i+1, column=3).value: result = result + 1 if result > 6: result = 6 elif old != day and name == sheet.cell(row=i+1, column=3).value: all = all + result old = sheet.cell(row=i+1, column=4).value[7:9] result = 1 else: name = sheet.cell(row=i+1, column=3).value sheet2.cell(row=row1-1, column=2).value = all + result sheet2.cell(row=row1, column=1).value = name #print(all+result,name) all,result = 0,1 row1 += 1 sheet2.cell( row=row1 - 1, column=2 ).value = all + result wb.save( '501.xlsx' ) return sheet2 # 获取c列所有数据

def main(): sheet2 = get_sheet() for i in range(sheet2.max_row ): all = sheet2.cell( row=i+1, column=2 ).value name = sheet2.cell( row=i+1, column=1 ).value print(name,all) print("共计 %d 人" % sheet2.max_row)

main()————————————————版权声明:本文为博主「秋瑾先生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/dldl1718/article/details/87645480

转载于:https://www.cnblogs.com/valorchang/p/11585708.html

相关资源:openpyxl安装
最新回复(0)