用python处理excel文件有多轻松?工作从未如此简单

本文详细介绍了如何使用 Python 的 openpyxl 库处理 Excel 文件,包括读取、添加、修改和删除工作表,以及操作行列和单元格。通过 openpyxl,可以轻松实现 Excel 的自动化处理。

1 前言

最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单。本文对 openpyxl 的使用进行总结,主要包含以下内容:

  • openpyxl 的介绍及 excel 文件结构说明
  • 工作表的读写处理
  • 行列的读写处理
  • 单元格的读写处理

 

2 openpyxl 及 excel 文件结构

openpyxl 是一个对 xlsx/xlsm/xltx/xltm 格式的 2010 excel 文档进行读写的 python 库。它官网有详细的文档介绍。在进行使用前,需先安装并引入

# 安装
pip install openpyxl
# 引入openpyxl 模块
import openpyxl
复制代码

在进行 excel 操作之前,先对 excel 的文件结构做一个简单了解,以便于熟悉后续的操作。

 

如下图:

 

一个 excel 文件,其内容按层次分为工作簿(文件) -> 工作表(sheet) -> 行列 -> 单元格 ,对应上图,整个 excel 文件即是一个工作簿;工作簿下可以有多个工作表(如图中的 Sheet1/test1 等等);工作表中就是对应的表格数据,分为行和列,行是用序号表示,列用大写字母表示(也可用序号);行与列的交点就是每一个存储数据的单元格。因此,我们对 excel 表格进行读写,基本按这个层次思路来操作:读入文件,找到工作表,遍历行列,定位单元格,对单元格进行读写。因此,会涉及到工作表、行列、单元格的读写操作。这些操作之前,需要先把文件加载进来,一个 excel 文件就是一个工作簿 (workbook),加载操作如下(示例中的 excel 文件为 text.xlsx):

# 加载excel文件
file_path = "E:/pythontest/test.xlsx"
workbook = openpyxl.load_workbook(file_path)
复制代码

3 工作表处理

3.1 工作表读取

工作表( sheet )会有多个,可以读取全部的工作表,读取单个时,可以按 sheet 名称读取,也可以按下标(下标从0开始)。

  • 全部工作表对象:workbook.worksheets
  • 全部工作表名称:workbook.sheetnames
  • 按名称(sheet_name)获取工作表:workbook[sheet_name]
  • 按下标(i从0开始)获取工作表:workbook.worksheets[i]
  • 获取正在使用的工作表:workbook.active
  • 获取工作表的属性(如工作表名称、最大行数和列数等):sheet.title、sheet.max
### 使用 PythonExcel 文件写入数据 Python 提供了种库来操作 Excel 文件,其中 `xlwt` 是一个用于创建和写入 `.xls` 格式 Excel 文件的常用模块。以下是使用 `xlwt` 写入数据到 Excel 的详细方法。 #### 创建 Excel 文件并写入数据 首先需要导入 `xlwt` 模块,并创建一个工作簿对象。该对象可以设置编码格式以及是否压缩样式信息: ```python import xlwt book = xlwt.Workbook(encoding='utf-8', style_compression=0) ``` 接着可以在工作簿中添加一张工作表(sheet),并指定名称以及是否允许重写单元格内容: ```python sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) ``` 定义列名可以通过一个元组实现,并将其写入到工作表的第一行中: ```python col = ('电影详情链接', '图片链接', '影片中文名', '影片外国名', '评分', '评价数', '概况', '相关信息') for i in range(len(col)): sheet.write(0, i, col[i]) ``` 将实际数据写入表格时,可以通过嵌套循环逐行逐列地填充内容。例如,以下代码将二维列表中的数据依次写入 Excel 表格中: ```python datalist = [ ['www', 'www图片', '西游记', 'xiyouji', '100分', '0人', '很好', '超级棒'], ['www2', 'www图片2', '西游记2', 'xiyouji2', '1000分', '1人', '很棒', '一级棒'] ] for i in range(len(datalist)): data = datalist[i] for j in range(len(data)): sheet.write(i + 1, j, data[j]) ``` 最后,调用 `save` 方法保存工作簿到指定路径: ```python savepath = 'C:/Users/DELL/Desktop/excel表格.xls' book.save(savepath) ``` 以上方法适用于较早期的 `.xls` 文件格式。如果需要处理现代 `.xlsx` 格式的文件,则建议使用其他更先进的库如 `openpyxl` 或 `pandas` 来完成类似任务[^1]。 --- ### 相关问题 1. 如何使用 Python 读取 Excel 文件中的数据? 2.Python 中如何处理大型 Excel 文件以避免内存不足的问题? 3. 如何利用 PythonExcel 数据进行筛选和分析? 4. 如何使用 PythonExcel 文件合并成一个?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值