乐于分享
好东西不私藏

Python小白成长记 · 第13课 | Excel电子表格操作(中)

Python小白成长记 · 第13课 | Excel电子表格操作(中)
大家好,我是星源,一个正在自学Python的19岁编程小白 🤓。这是我的学习笔记系列,我会把每天学到的知识点整理出来,分享给同样在路上的小伙伴,希望能和大家一起进步 🚀。

📌 今日学习内容

👉 "今天继续深入Excel电子表格操作,掌握更多实用技巧"


✨ 知识点讲解

冻结窗格与视图管理

概念说明:冻结窗格可以固定电子表格中的行或列,方便滚动查看大量数据时保持表头可见。

代码示例

importopenpyxlwb=openpyxl.load_workbook('example.xlsx')sheet=wb.active# 冻结首行sheet.freeze_panes='A2'# 冻结首列sheet.freeze_panes='B1'# 冻结前两行和前两列sheet.freeze_panes='C2'wb.save('frozen_panes_example.xlsx')

小提示:冻结窗格后,被冻结的行或列将始终保持可见,便于数据分析。

Excel图表创建与操作

概念说明:可以使用openpyxl创建多种类型的图表(如柱状图、折线图),直观展示数据。

代码示例

importopenpyxlfromopenpyxl.chartimportBarChartReferencewb=openpyxl.Workbook()sheet=wb.active# 添加数据foriinrange(111):sheet[f'A{i}'=i# 创建柱状图values=Reference(sheetmin_col=1min_row=1max_row=10max_col=1)chart=BarChart()chart.add_data(values)chart.title='Sample Bar Chart'chart.x_axis.title='Index'chart.y_axis.title='Value'sheet.add_chart(chart'C1')wb.save('chart_example.xlsx')

小提示:图表可以增强数据可视化效果,帮助快速理解数据趋势。

条件格式与数据验证

概念说明:为单元格设置条件格式(如根据数值大小改变背景色),并添加数据验证规则(如限制输入范围)。

代码示例

importopenpyxlfromopenpyxl.stylesimportPatternFillfromopenpyxl.utils.dataframeimportdataframe_to_rowsfromopenpyxl.worksheet.datavalidationimportDataValidationwb=openpyxl.Workbook()sheet=wb.active# 添加数据foriinrange(111):sheet[f'A{i}'=i*10# 设置条件格式red_fill=PatternFill(start_color='FFC107'end_color='FFC107'fill_type='solid')forcellinsheet['A1:A10']:ifcell[0].value>50:cell[0].fill=red_fill# 添加数据验证dv=DataValidation(type='whole'formula1='1'formula2='100')sheet.add_data_validation(dv)dv.add('B1:B10')wb.save('conditional_formatting_example.xlsx')

小提示:条件格式和数据验证可提高数据输入的准确性和可读性。

处理合并单元格与复杂表格

概念说明:处理合并单元格的数据提取,并创建包含合并单元格的表格。

代码示例

importopenpyxlwb=openpyxl.load_workbook('merged_cells.xlsx')sheet=wb.active# 读取合并单元格数据formerged_cellinsheet.merged_cells.ranges:print(f'Merged cells found: {merged_cell}')# 创建合并单元格wb=openpyxl.Workbook()sheet=wb.activesheet.merge_cells(start_row=1start_col=1end_row=3end_col=3)sheet['A1'='Merged Content'wb.save('create_merged_cells.xlsx')

小提示:在读取合并单元格时,数据通常存储在左上角的单元格中。

实战项目:自动化报表生成

概念说明:结合Excel操作与数据处理,自动生成月度销售报表。

代码示例

importopenpyxlfromopenpyxl.stylesimportFontAlignmentfromopenpyxl.chartimportPieChartReference# 创建工作簿并设置样式wb=openpyxl.Workbook()sheet=wb.activesheet.title='Monthly Sales Report'# 添加标题title_font=Font(name='Calibri'size=18bold=True)sheet['A1'='Monthly Sales Report'sheet['A1'].font=title_fontsheet['A1'].alignment=Alignment(horizontal='center')# 添加数据data= [    ['Product''Sales'],    ['Widget A'120],    ['Widget B'80],    ['Widget C'150],    ['Widget D'100]]forrowindata:sheet.append(row)# 创建饼图pie=PieChart()labels=Reference(sheetmin_col=1min_row=2max_row=5)data=Reference(sheetmin_col=2min_row=1max_row=5)pie.add_data(datatitles_from_data=True)pie.set_categories(labels)pie.title='Sales Distribution'sheet.add_chart(pie'F2')# 保存工作簿wb.save('monthly_sales_report.xlsx')

小提示:综合运用样式设置和图表创建,可以生成专业美观的报表。


✅ 总结

  1. 冻结窗格:固定表头或列,便于查看大量数据。

  2. 图表创建:使用openpyxl生成柱状图、饼图等可视化图表。

  3. 条件格式与数据验证:增强数据的可读性和输入准确性。

  4. 合并单元格处理:正确读取和创建合并单元格,适应复杂表格布局。

  5. 自动化报表生成:整合Excel操作,自动生成专业报表。


📢 互动提问

你在工作中是否需要定期生成类似的报表?Python自动化生成报表是否能显著提高你的工作效率?