python openpyxl笔记

本文介绍如何利用Python的openpyxl库读取Excel文件的内容。通过示例代码展示了如何忽略警告信息、加载工作簿、获取所有sheet名称、选择特定sheet及获取单元格的值等操作。

import warnings

warnings.filterwarnings("ignore") # 如果没有此行代码,则会出现警告提示: UserWarning: Discarded range with reserved name warnings.warn("Discarded range with reserved name")原因是会忽略掉excel中的其他一些设置,对excel中我们正常取值是没有影响的,可以忽略

wb = openpyxl.load_workbook(file_name, read_only=True) #打开文件

wb.get_sheet_names() #获取所有的sheet_name

ws = wb.get_sheet_by_name(sheet_name) #获取sheet对象

title = ws.title #sheet名
rows = ws.get_highest_row() #行数
cols = ws.get_highest_column()#列数

ws.cell(row=1, column=3).value #获取cell的值,如果cell值为空,ws.cell(row=1, column=3)为None

转载于:https://www.cnblogs.com/forwhy/p/5362954.html

<think> 我们根据用户的需求,提供关于openpyxl库的使用指南和示例代码。参考提供的引用内容,我们将涵盖以下方面: 1. 安装openpyxl库 2. 创建和保存工作簿 3. 打开已有工作簿 4. 操作工作表和单元格 5. 示例代码演示 由于引用中提供了部分信息,我们将整合这些信息并补充细节。 ### 安装openpyxl 使用pip安装openpyxl: ```bash pip install openpyxl ``` ### 1. 创建和保存工作簿 使用`Workbook`类创建一个新的工作簿,并保存到指定路径。 ```python from openpyxl import Workbook # 创建新的工作簿 wb = Workbook() # 获取活动工作表(默认创建的第一个工作表) ws = wb.active # 设置工作表的标题 ws.title = "Sheet1" # 保存工作簿到文件 wb.save("new_excel.xlsx") ``` ### 2. 打开已有工作簿 使用`load_workbook`函数打开一个已存在的Excel文件。 ```python from openpyxl import load_workbook # 打开工作簿 wb = load_workbook('existing_file.xlsx') # 获取所有工作表名称 print(wb.sheetnames) # 选择特定工作表 ws = wb['Sheet1'] # 或者使用 wb.active ``` ### 3. 操作工作表 可以创建工作表、选择工作表、重命名工作表等。 ```python # 创建一个新的工作表,可以指定位置(0表示第一个位置) wb.create_sheet("NewSheet", 0) # 在开头插入 wb.create_sheet("AnotherSheet") # 在末尾追加 # 重命名工作表 ws = wb["NewSheet"] ws.title = "RenamedSheet" # 删除工作表 del wb["AnotherSheet"] ``` ### 4. 操作单元格 可以读取和写入单元格数据,以及设置单元格样式(这里只展示基本读写)。 ```python # 选择工作表 ws = wb.active # 写入数据到单元格 ws['A1'] = "Hello" # 直接通过坐标 ws.cell(row=2, column=1, value="World") # 通过行和列 # 读取单元格数据 cell_value = ws['A1'].value print(cell_value) # 输出: Hello # 使用循环写入多行数据 data = [ ["Name", "Age"], ["Alice", 25], ["Bob", 30] ] for row in data: ws.append(row) # 追加一行数据 # 访问多个单元格 for row in ws.iter_rows(min_row=1, max_col=2, max_row=3): for cell in row: print(cell.value, end=" ") print() ``` ### 5. 示例:创建一个简单的Excel文件并写入数据 下面是一个完整的示例,创建一个工作簿,写入数据并保存。 ```python from openpyxl import Workbook # 创建工作簿 wb = Workbook() ws = wb.active ws.title = "Employees" # 添加表头 ws.append(["ID", "Name", "Department", "Salary"]) # 添加数据 employees = [ [1, "Alice", "HR", 5000], [2, "Bob", "IT", 6000], [3, "Charlie", "Finance", 5500] ] for emp in employees: ws.append(emp) # 保存 wb.save("employees.xlsx") ``` ### 注意事项 - 当打开文件时,如果文件不存在,`load_workbook`会报错,创建文件使用`Workbook`。 - 保存文件时,如果文件已存在,则会覆盖原文件。 ### 扩展功能 openpyxl还支持设置单元格样式、公式、图表等高级功能,可以参考官方文档进一步学习。 §§相关问题§§ 1. openpyxl支持哪些Excel文件格式? 2. 如何使用openpyxl设置单元格的样式(如字体、颜色)? 3. 如何使用openpyxl在Excel中插入图表? 4. openpyxl如何处理大型Excel文件以避免内存问题? </think> ### Python openpyxl 库使用指南 openpyxlPython 处理 Excel 文件的主流库,支持 `.xlsx` `.xlsm` 等格式,以下是核心功能和示例代码: #### 一、基础操作 1. **安装库** ```bash pip install openpyxl ``` 2. **创建/保存工作簿** ```python from openpyxl import Workbook # 创建新工作簿 wb = Workbook() ws = wb.active # 获取活动工作表 ws.title = "销售数据" # 重命名工作表 # 保存文件 wb.save("销售报表.xlsx") # 路径支持绝对/相对路径 [^4] ``` 3. **打开现有文件** ```python from openpyxl import load_workbook wb = load_workbook("库存表.xlsx") # 打开文件 print(wb.sheetnames) # 打印所有工作表名 ['Sheet1', '销售数据'] ws = wb["销售数据"] # 选择特定工作表 ``` #### 二、单元格操作 ```python # 写入数据 (支持多种格式) ws['A1'] = "产品ID" # 文本 ws['B1'] = 3.14 # 数字 ws['C1'] = datetime.now() # 日期 # 批量写入 data = [ ["P1001", "笔记本", 25, 5999], ["P1002", "鼠标", 80, 89.9] ] for row in data: ws.append(row) # 自动追加新行 # 读取数据 (索引从1开始) print(ws.cell(row=2, column=1).value) # 输出 P1001 ``` #### 三、工作表管理 ```python # 创建新表 (指定位置) wb.create_sheet("财务报表", 0) # 插入到首位 [^3] # 删除工作表 del wb["Sheet1"] # 删除默认表 # 遍历所有表 for sheet in wb: print(sheet.title) ``` #### 四、高级功能 1. **单元格样式** ```python from openpyxl.styles import Font, PatternFill # 设置标题样式 header = ws["A1:D1"] for cell in header: cell.font = Font(bold=True, color="FFFFFF") cell.fill = PatternFill("solid", fgColor="4F81BD") ``` 2. **公式计算** ```python ws['D5'] = "=SUM(D2:D4)" # 添加求和公式 print(ws['D5'].value) # 计算后显示结果 ``` 3. **图表生成** (需安装 `openpyxl[charts]`) ```python from openpyxl.chart import BarChart, Reference # 创建柱状图 chart = BarChart() data = Reference(ws, min_col=4, min_row=1, max_row=5) chart.add_data(data) ws.add_chart(chart, "F2") # 插入图表到指定位置 ``` #### 五、最佳实践 1. **大文件处理**: ```python # 优化内存模式 wb = Workbook(write_only=True) # 只写模式提升性能 [^3] ``` 2. **错误处理**: ```python try: wb.save("报表.xlsx") except PermissionError: print("错误:文件被其他程序占用") ``` > 完整文档参考:[openpyxl官方文档](https://openpyxl.readthedocs.io/)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值