在日常工作中,Excel作为数据分析和报告制作的利器,几乎无人不知无人不晓。然而,面对大量重复的数据录入、整理、分析任务时,手动操作不仅耗时费力,还容易出错。此时,Python与它的强大库openpyxl便闪亮登场,助你轻松实现Excel自动化办公。
Python以其简洁易学的语法和丰富的数据处理库,能高效地处理复杂的数据任务,而openpyxl则是专门用于操作Excel文件的库,让你无需打开Excel,就能完成创建、读取、编辑等操作。
openpyxl是一个开源的Python库,专注于读写Microsoft Excel 2010 xlsx/xlsm/xltx/xltm文件。它支持高级功能如数据验证、图表、超链接、注释等,且性能优秀,对大型文件处理游刃有余。安装只需在命令行中输入以下命令:
pip install openpyxl
想在Python里“无中生有”一个Excel文件?openpyxl帮你实现!下面的代码将创建一个名为“my_data.xlsx”的文件,并在其中填入一些数据:
from openpyxlimportWorkbook # 创建Workbook对象,相当于一个新的Excel文件 wb=Workbook()# 获取默认的活跃工作表(Sheet) ws=wb.active # 在A1到C3单元格写入数据forrowinrange(1,4):forcolin'ABC':ws[col+str(row)]=f"Data {row} {col}"# 保存到硬盘 wb.save("my_data.xlsx")
有了数据,自然要能读取。这段代码将打开“my_data.xlsx”,读取其内容并打印出来:
from openpyxlimportload_workbook # 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")# 获取第一个工作表(索引为0) ws=wb.worksheets[0]# 遍历所有单元格并打印内容forrowinws.iter_rows():forcellinrow:print(cell.value)
数据错了?颜色不满意?openpyxl让你轻松调整:
from openpyxl.stylesimportFont,Color # 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")ws=wb.active # 修改A1单元格内容为"Updated Data"ws["A1"]="Updated Data"# 设置A1单元格字体为红色,加粗 font=Font(color=Color(rgb='FF0000'),bold=True)ws["A1"].font=font # 保存更改 wb.save("my_data.xlsx")
数据结构需要调整?openpyxl让你增删自如:
# 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")ws=wb.active # 在第二行前插入一行 ws.insert_rows(2)# 删除第三列(C列) ws.delete_cols(3)# 保存更改 wb.save("my_data.xlsx")
表格需要更美观?合并单元格与条件格式来帮忙:
from openpyxl.formatting.ruleimportCellIsRule from openpyxl.stylesimportPatternFill # 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")ws=wb.active # 合并A1到C1单元格 ws.merge_cells('A1:C1')# 创建一个条件格式规则:当单元格值大于10时填充绿色 green_fill=PatternFill(start_color="00FF00",end_color="00FF00",fill_type="solid")rule=CellIsRule(operator='>',formula=['10'],stopIfTrue=False,fill=green_fill)# 应用规则到整个工作表 ws.conditional_formatting.add('A1:C5',rule)# 保存更改 wb.save("my_data.xlsx")
数据需要计算或统计?openpyxl支持直接写入公式:
# 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")ws=wb.active # 在D1单元格写入求和公式 ws["D1"]="=SUM(A1:C1)"# 在D2单元格写入平均值公式 ws["D2"]="=AVERAGE(A2:C2)"# 保存更改并计算公式结果 wb.save("my_data.xlsx")
面对多工作表的大型文件,openpyxl也能轻松应对:
# 加载已有的Excel文件 wb=load_workbook("my_data.xlsx")# 遍历所有工作表forsheetinwb.worksheets:print(f"Processing sheet: {sheet.title}")# 对每个工作表执行相同的操作,如数据清洗、格式化等 # 保存更改 wb.save("my_data.xlsx")
恭喜你,通过以上7个示例,你已经掌握了openpyxl的基本操作。接下来,你可以尝试结合pandas库进行更复杂的数据分析,或者利用定时任务实现自动化报表生成。无论你是处理销售数据、财务报表,还是科研数据,openpyxl都能成为你提升工作效率的得力助手。