Python Excel 处理模块 : Openpyxl
OpenPyXL模块使用方法
以下是介绍OpenPyXL的基本使用,不涉及样式和合并单元格的跨行操作
一般来说,对于大名鼎鼎的xlrd,xlwt和xlutils三个模块,Excel操作有3个基本状态
-
已有Excel表,只需要读取(xlrd)
-
没有Excel表,只需要创建,并且只是写入数据(xlwt)
-
有Excel表,需要读取,又需要写入(以xlutils为中介的xlrd和xlwt运用)
我一开始接触就是它们3个,但是在我是应用中,觉得它们有点局限性,即使是有xlutils将xlrd和xlwt融合后. 我当时想读取一个表里面的一个sheet,然后处理数据,并新建一个sheet输出,而且为了防止一些可能的意外,导致要第二次运行程序,重写新表数据,所以还要进行新建表重复判断删除. 很遗憾的是它们3个混合是无法进行删除的,虽然意外可能不怎么会发生,但是我调试代码的时候,每次都要打开Excel文件删除sheet,贼烦的
不多废话了,安装也很简单: pip install openpyxl 即可。注意的是Openpyxl模块是仅支持XLSX格式的Excel表格,XLS表格是无法进行操作的。
使用方法在代码里面以多行注释: ''' 表示
import openpyxl
# 导入openpyxl模块
def ExcelOperate(path):
# Window 路径替换 因为.save(path)是需要用"/"路径的
path=path.replace('\\','/')
# 这里我只分两种情况:有Excel表和无Excel表的情况:
# 第一种情况:有Excel表
# 加载已有的Excel表格
Book=openpyxl.load_workbook(path)
# 得到第1个Sheet的名字,并用名字获取Sheet对象
Sheet = Book[Book.sheetnames[0]]
# 遍历整个Sheet有效行(Sheet.iter_rows()就能获取当前Sheet全部有效行)
for row in Sheet.iter_rows():
# 获取到单行的全部内容,使用下标来获取某行的单元格,再使用value方法读取单元格内容。
print(row[1].value)
# 修改内容。行为1,列为2的单元格内容改为:测试
Sheet.cell(row=1, column=2, value="测试")
# 保存覆盖原有文件
Book.save(path)
'''
openpyxl.load_workbook() 加载Excel文档
Book[name] 获取名为name的sheet,
Book.sheetnames() 这个是获取Book的所有sheet名,以list的形式返回
Sheet.iter_rows() 把sheet里全部内容以行的形式返回
Sheet.rows 直接遍历行需要转list或tuple后以下标来读取(外加.value)
Sheet.cell(row,column,value) 修改指定行列的单元格内容
注意:get系列的方法已经是弃用了的
如果使用弃用方法并不会报错,但是会在命令行提示使用新的方法
(例如:get_sheet_names(),执行会提示:Deprecated: Use wb.sheetnames)
'''
OpenPyxl样式模块
from openpyxl.styles import *
版权声明:本文为博客园博主「 StarDarkMonarch 」的原创文章
原文链接: https://www.cnblogs.com/freedom-eagle/p/11114262.html
遵循CC BY-NC-SA 4.0版权协议,转载、翻译请附上原文出处链接及本声明。
协议链接:https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
原文链接: https://www.cnblogs.com/freedom-eagle/p/11114262.html
遵循CC BY-NC-SA 4.0版权协议,转载、翻译请附上原文出处链接及本声明。
协议链接:https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh