
Python使用openpyxl模块读写excel文件
数据准备:将需要保存的数据以列表或元组形式准备好,确保数据类型一致。 函数封装:将写入Excel的操作封装到 工作表操作: 保存文件:调用
打开文件:使用 获取工作表信息:通过 获取当前工作表:使用 读取数据: 注意事项:openpyxl的读取索引是从1开始的,与xlrd等其他库不同。
发布日期:2021-05-12 20:11:38
浏览次数:22
分类:精选文章
本文共 3112 字,大约阅读时间需要 10 分钟。
Python使用openpyxl模块读写Excel文件
openpyxl是一个专为处理xlsx格式Excel文件而设计的Python库,适用于读取和写入Excel数据。
安装openpyxl
通过pip安装openpyxl库:
pip install openpyxl
使用openpyxl写入Excel文件
以下是将数据写入Excel文件的示例代码:
import openpyxlopenpyxl_data = [ ('我', '们', '在', '这', '寻', '找'), ('我', '们', '在', '这', '失', '去'), ('p', 'y', 't', 'h', 'o', 'n')]output_file_name = 'openpyxl_file.xlsx'def save_excel(target_list, output_file_name): """将数据写入xlsx文件""" if not output_file_name.endswith('.xlsx'): output_file_name += '.xlsx' # 创建一个新的工作簿 wb = openpyxl.Workbook() # 获取当前活跃的工作表,默认是第一个表格 ws = wb.active # 添加标题行 title_data = ('a', 'b', 'c', 'd', 'e', 'f') target_list.insert(0, title_data) # 获取数据行数和列数 rows = len(target_list) cols = len(target_list[0]) if rows > 0 else 0 # 将数据写入Excel表格 for i in range(rows): for j in range(cols): ws.cell(row=i + 1, column=j + 1).value = target_list[i][j] # 保存文件 wb.save(output_file_name)# 调用函数将数据保存到文件中save_excel(openpyxl_data, output_file_name)
代码说明
save_excel
函数中,便于重复使用。- 创建一个新的
openpyxl.Workbook
对象。 - 获取并激活默认的工作表
ws
。 - 添加标题行,确保表格结构清晰。
- 遍历数据列表,将每个单元格的值依次写入表格中。
wb.save()
方法将修改保存到指定文件名。运行上述代码后,会在当前目录下生成一个名为openpyxl_file.xlsx
的Excel文件,表格中将包含写入的数据。
使用openpyxl读取Excel文件
以下是读取Excel文件数据的示例代码:
import openpyxlinput_file_name = 'openpyxl_file.xlsx'def read_excel(input_file_name): """从xlsx文件中读取数据""" # 打开Excel文件 workbook = openpyxl.load_workbook(input_file_name) # 获取所有工作表名称 print("工作表名称:", workbook.sheetnames) # 获取当前活跃的工作表 table = workbook.active # 获取表格的最大行数和列数 rows = table.max_row cols = table.max_column # 读取表格数据 for row in range(rows): for col in range(cols): cell_value = table.cell(row=row + 1, column=col + 1).value print(f"行{row + 1},列{col + 1}:{cell_value}", end=' ') return table# 调用函数读取数据read_excel(input_file_name)
代码说明
openpyxl.load_workbook()
方法打开Excel文件,返回一个workbook
对象。workbook.sheetnames
获取文件中所有工作表的名称。workbook.active
获取当前活跃的工作表,通常是第一张工作表。- 获取表格的最大行数和列数。
- 遍历每一行和每一列,读取单元格的值并打印。
运行上述代码后,会输出文件中所有单元格的数据。
openpyxl的高级功能
openpyxl提供了丰富的功能,包括:
- 设置列宽和行高:可以根据数据需求调整表格布局。
- 设置单元格格式:如居中、字体大小、颜色等。
- 数据图表:支持将数据绘制为图表,便于数据可视化。
- 条件格式:根据数据条件设置单元格的格式。
以下是一个简单的示例,演示如何设置列宽和居中格式:
import openpyxlfrom openpyxl.utils import get_column_letterfrom openpyxl.styles import Font, colors, Alignment# 假设已经创建并填充了数据ws = wb.active# 设置列宽for i in range(len(ws.columns)): col_letter = get_column_letter(i + 1) column_width = max(len(str(cell.value)) for cell in ws.columns[i]) if column_width > 40: ws.column_dimensions[col_letter].width = 45 else: ws.column_dimensions[col_letter].width = column_width + 3# 设置居中格式for col in ws.columns: for cell in col: cell.alignment = Alignment(horizontal='left', vertical='center', wrap_text=True) cell.font = Font(size=10)
openpyxl是一个强大的Excel处理库,支持复杂的操作,如条件格式、数据透视表、图表等。更多功能请参考openpyxl的官方文档。
发表评论
最新留言
不错!
[***.144.177.141]2025年05月04日 13时20分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《web安全入门》(四)前端开发基础Javascript
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
python struct 官方文档
2019-03-07
Android DEX加固方案与原理
2019-03-07
Android Retrofit2.0 上传单张图片和多张图片
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2019-03-07
selenium+python之切换窗口
2019-03-07