宝安做网站公司乐云seo,广告位,广州做网站信息,做网站应该会什么目录 1. openpyxl 简介2. 安装与快速入门2.1 安装 openpyxl2.2 快速创建一个 Excel 文件2.3 读取 Excel 文件 3. openpyxl 的核心概念3.1 工作簿#xff08;Workbook#xff09;3.2 工作表#xff08;Worksheet#xff09;3.3 单元格#xff08;Cell#xff09;3.4 行与列… 目录 1. openpyxl 简介2. 安装与快速入门2.1 安装 openpyxl2.2 快速创建一个 Excel 文件2.3 读取 Excel 文件 3. openpyxl 的核心概念3.1 工作簿Workbook3.2 工作表Worksheet3.3 单元格Cell3.4 行与列3.5 范围Range3.6 公式与函数3.7 样式与格式 4. Excel 文件的读取与写入4.1 读取 Excel 文件4.2 写入 Excel 文件4.3 实践批量修改单元格 5. 高级功能详解5.1 操作公式5.2 添加图表5.3 插入图片5.4 数据验证5.5 条件格式 6. 样式与格式设置6.1 字体样式6.2 单元格填充6.3 边框设置6.4 对齐方式6.5 数字格式6.6 合并与拆分单元格6.7 实践制作格式化报表 1. openpyxl 简介
Python 的 openpyxl 库是处理 Excel 文件的强大工具。在数据分析、自动化办公和报告生成等领域经常需要对 Excel 文件进行读取、修改和创建操作。openpyxl 提供了全面的功能允许开发者以编程方式操纵 Excel 文件从而提高工作效率并减少手动操作的错误。
具体来讲openpyxl 是一个用于读取和写入 Microsoft Excel 2010 xlsx/xlsm/xltx/xltm 文件的开源库。与其他处理 Excel 文件的库相比openpyxl 专注于对现代 Excel 格式即基于 XML 的 .xlsx 文件的支持。
主要特点包括
读取和写入 Excel 文件支持对单元格、行、列、工作表和工作簿的操作。格式化可以修改单元格的字体、颜色、边框和对齐方式等格式属性。图表和图片支持在工作表中插入图表和图片增强数据的可视化。公式能够读取和设置单元格中的公式支持计算公式结果。
2. 安装与快速入门
2.1 安装 openpyxl
在开始使用 openpyxl 之前需要先进行安装。可以通过 pip 进行安装
pip install openpyxl确保您的 Python 版本在 3.6 及以上因为较早的版本可能不支持部分功能。
2.2 快速创建一个 Excel 文件
以下是一个使用 openpyxl 创建简单 Excel 文件的示例
import openpyxl
from openpyxl import Workbook# 创建一个新的工作簿
wb Workbook()# 激活默认的工作表
ws wb.active# 在单元格中写入数据
ws[A1] Hello
ws[B1] World!# 保存工作簿
wb.save(hello_world.xlsx)运行上述代码后将在当前目录下生成一个名为 hello_world.xlsx 的 Excel 文件内容如下
ABHelloWorld!
2.3 读取 Excel 文件
openpyxl 还可以读取已有的 Excel 文件。下面是读取刚才创建的文件并打印单元格内容的示例
import openpyxl# 加载已有的工作簿
wb openpyxl.load_workbook(hello_world.xlsx)# 选择活动的工作表
ws wb.active# 读取并打印单元格内容
print(ws[A1].value) # 输出: Hello
print(ws[B1].value) # 输出: World!通过以上简单的示例我们已经了解了如何使用 openpyxl 创建和读取 Excel 文件。在接下来的章节中我们将详细介绍 openpyxl 的核心概念和高级功能。
3. openpyxl 的核心概念
在使用 openpyxl 操作 Excel 文件时需要理解一些核心概念这将有助于我们更有效地利用该库。
3.1 工作簿Workbook
工作簿是 Excel 文件的顶层容器包含了所有的工作表、全局设置和属性。
创建工作簿wb Workbook()加载工作簿wb load_workbook(filename)
3.2 工作表Worksheet
工作簿包含一个或多个工作表每个工作表都是一个二维的单元格网格。
激活工作表ws wb.active创建新工作表ws wb.create_sheet(titleSheetName)访问特定工作表ws wb[SheetName]
3.3 单元格Cell
单元格是工作表中的基本元素包含数据、样式和其他属性。
访问单元格cell ws[A1] 或 cell ws.cell(row1, column1)设置单元格值ws[A1] Data获取单元格值value ws[A1].value
3.4 行与列
可以通过行和列来批量操作单元格。
迭代行for row in ws.iter_rows(min_row1, max_col3, max_row2):迭代列for col in ws.iter_cols(min_row1, max_col3, max_row2):
3.5 范围Range
范围是指一组连续的单元格可以对其进行批量操作。
访问范围cell_range ws[A1:C3]
3.6 公式与函数
可以在单元格中使用公式openpyxl 支持 Excel 的大部分公式。
设置公式ws[A2] SUM(A1:A10)读取公式结果需要在 Excel 中打开文件或使用 data_only 参数加载工作簿。
wb load_workbook(formula.xlsx, data_onlyTrue)3.7 样式与格式
openpyxl 提供了丰富的样式和格式选项可以设置字体、颜色、对齐方式等。
设置字体
from openpyxl.styles import Font
ws[A1].font Font(nameCalibri, size14, boldTrue)设置填充颜色
from openpyxl.styles import PatternFill
ws[A1].fill PatternFill(fill_typesolid, start_colorFF0000)4. Excel 文件的读取与写入
在数据处理过程中读取和写入 Excel 文件是最常见的操作。openpyxl 提供了简单直观的方法来完成这些任务。
4.1 读取 Excel 文件
加载工作簿
使用 load_workbook 函数加载已有的 Excel 文件
from openpyxl import load_workbookwb load_workbook(data.xlsx)选择工作表
可以通过多种方式选择工作表
使用工作表名称
ws wb[Sheet1]使用 active 属性
ws wb.active读取单元格数据
读取单元格的值
value ws[A1].value或者使用行列索引
value ws.cell(row1, column1).value遍历数据
遍历所有行和列
for row in ws.iter_rows(values_onlyTrue):print(row)4.2 写入 Excel 文件
写入单元格
在特定单元格中写入数据
ws[A1] New Data或者使用行列索引
ws.cell(row1, column1, valueNew Data)插入行和列
插入一行
ws.insert_rows(idx2)插入一列
ws.insert_cols(idx3)删除行和列
删除一行
ws.delete_rows(idx2)删除一列
ws.delete_cols(idx3)保存工作簿
完成所有修改后保存工作簿
wb.save(modified_data.xlsx)4.3 实践批量修改单元格
假设我们有一个成绩表需要将所有学生的成绩提高 5 分。
from openpyxl import load_workbookwb load_workbook(scores.xlsx)
ws wb.active# 假设成绩在 B 列从第 2 行开始
for row in ws.iter_rows(min_row2, min_col2, max_col2):for cell in row:if isinstance(cell.value, (int, float)):cell.value 5wb.save(updated_scores.xlsx)通过以上操作我们成功地批量修改了 Excel 文件中的数据。
5. 高级功能详解
openpyxl 不仅可以进行基本的读取和写入操作还提供了许多高级功能例如图表、图片和数据验证等。
5.1 操作公式
可以在单元格中写入公式
ws[A10] SUM(A1:A9)openpyxl 不会自动计算公式结果但可以通过设置 data_onlyTrue 来读取公式计算后的值
wb load_workbook(formula.xlsx, data_onlyTrue)
ws wb.active
print(ws[A10].value)5.2 添加图表
以创建柱状图为例
from openpyxl.chart import BarChart, Referencechart BarChart()
data Reference(ws, min_col2, min_row1, max_row10)
chart.add_data(data, titles_from_dataTrue)
ws.add_chart(chart, E5)可以设置图表的标题、轴标签等属性
chart.title Sales Chart
chart.x_axis.title Month
chart.y_axis.title Sales5.3 插入图片
from openpyxl.drawing.image import Imageimg Image(logo.png)添加图片到工作表
ws.add_image(img, A1)5.4 数据验证
可以添加数据验证来限制单元格的输入内容。
创建数据验证对象
from openpyxl.worksheet.datavalidation import DataValidationdv DataValidation(typewhole, operatorbetween, formula11, formula2100)添加数据验证到工作表
dv.add(A1:A10)
ws.add_data_validation(dv)5.5 条件格式
根据单元格的值动态地改变单元格的格式。
创建条件格式规则
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFillred_fill PatternFill(start_colorFFC7CE, end_colorFFC7CE, fill_typesolid)ws.conditional_formatting.add(A1:A10, CellIsRule(operatorgreaterThan, formula[80], fillred_fill))通过以上高级功能的介绍可以看出 openpyxl 在处理 Excel 文件时具有非常强大的能力足以满足大多数复杂的需求。
6. 样式与格式设置
为了使 Excel 文件更加美观和专业openpyxl 提供了丰富的样式和格式设置选项。
6.1 字体样式
设置字体
from openpyxl.styles import Fontbold_font Font(boldTrue)
italic_font Font(italicTrue)ws[A1].font bold_font
ws[A2].font italic_font设置字体颜色和大小
from openpyxl.styles import Font, colorsfont_style Font(colorcolors.RED, size14, nameArial)
ws[A1].font font_style6.2 单元格填充
设置背景颜色
from openpyxl.styles import PatternFillfill PatternFill(fill_typesolid, start_colorFFFF00, end_colorFFFF00)
ws[A1].fill fill6.3 边框设置
添加边框
from openpyxl.styles import Border, Sidethin_border Border(leftSide(stylethin),rightSide(stylethin),topSide(stylethin),bottomSide(stylethin))ws[A1].border thin_border6.4 对齐方式
设置对齐方式
from openpyxl.styles import Alignmentalignment Alignment(horizontalcenter, verticalcenter)
ws[A1].alignment alignment6.5 数字格式
设置数字格式
ws[A1].number_format 0.00 # 保留两位小数6.6 合并与拆分单元格
合并单元格
ws.merge_cells(A1:C1)拆分单元格
ws.unmerge_cells(A1:C1)6.7 实践制作格式化报表
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, Border, Sidewb Workbook()
ws wb.active# 写入表头
headers [姓名, 数学, 英语, 总分]
ws.append(headers)# 添加数据
data [[张三, 85, 92],[李四, 78, 88],[王五, 90, 95]
]for row in data:total row[1] row[2]row.append(total)ws.append(row)# 设置表头样式
for cell in ws[1]:cell.font Font(boldTrue)cell.alignment Alignment(horizontalcenter)cell.border Border(bottomSide(stylethin))# 设置列宽
ws.column_dimensions[A].width 15
for col in [B, C, D]:ws.column_dimensions[col].width 10# 保存工作簿
wb.save(report.xlsx)通过以上代码我们生成了一个格式化的成绩报表包含表头加粗、单元格对齐、边框和列宽设置。