xlrd+xlwt+xlutils 知识全面汇总——Python的Excel读写处理

xlrd+xlwt+xlutils 知识全面汇总——Python的Excel读写处理,第1张


  • 1、简介
  • 2、 xlrd *** 作
    • 2.1、 打开Excel文件
    • 2.2、 sheet
    • 2.3、 行
    • 2.4、 列
    • 2.5、 cell
  • 3、 xlwt *** 作
    • 3.1、 创建Excel文件
    • 3.2、 sheet
    • 3.3、 cell
    • 3.4、 保存Excel文件
  • 4、 xlutils *** 作
  • 5、 其他

1、简介

xlrd 是python中用于读取 xls 和 xlsx 格式Excel文件的库(较新的版本将不再支持xlsx格式的读取)。
xlwt 是python中用于将数据写入 xls 格式Excel文件的库。
以上二者均无法直接修改excel文件,xlutils库可提供辅助和衔接,使用户可以同时读写一个 .xls 文件。

xlrd和xlwt主要支持早期的Excel版本,但优点是 *** 作更自然,模拟人们对Excel表格的手动 *** 作,且适用性强,可以实现多层表头的结构(而不像pandas把第一行视为表头,剩下的行都视为数据)。

python其他常用Excel读写库:
openpyxl:实现对xlsx格式Excel文件的读写和修改 *** 作。
pandas:数据处理最常用的分析库之一,可以读写xls和xlsx格式的Excel文件,一般输出dataframe格式,功能强大。
 

2、 xlrd *** 作 2.1、 打开Excel文件

使用open_workbook()读取指定的一个工作簿对象。

import xlrd

# filepath为文件路径名
book = xlrd.open_workbook(filepath)
2.2、 sheet

workbook中的工作表(sheet) *** 作

sheetCount = book.nsheets  #返回工作簿中sheet的数量

sheets = book.sheets()  #返回所有sheet对象
names = book.sheet_names() #返回所有sheet的名称

sheet = data.sheet_by_index(sheet_index))  #通过索引顺序获取一个sheet
sheet = data.sheet_by_name(sheet_name)  #通过名称获取一个sheet
2.3、 行

sheet中的行 *** 作

rowCount = sheet.nrows  #获取该sheet中的有效行数

sheet.row(rowx, start_colx=0, end_colx=None)   #返回由该行中所有的单元格对象组成的列表

sheet.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表

sheet.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表

sheet.row_len(rowx)  #返回该列的有效单元格长度
2.4、 列

sheet中的列 *** 作

colCount = sheet.ncols   #获取列表的有效列数

sheet.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表

sheet.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表

sheet.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表
2.5、 cell

sheet中的单元格(cell) *** 作

sheet.cell(rowx,colx)   #返回单元格对象

sheet.cell(rowx,colx).value   #返回单元格中的数据类型
sheet.cell(rowx,colx).ctype   #返回单元格中的数据

sheet.cell_type(rowx,colx)    #返回单元格中的数据类型
sheet.cell_value(rowx,colx)   #返回单元格中的数据

 

3、 xlwt *** 作 3.1、 创建Excel文件

使用Workbook()创建一个工作簿对象

book = xlwt.Workbook(encoding='utf-8')
3.2、 sheet

新建一个工作表(sheet)对象

#cell_overwrite_ok 是否允许重置单元格,默认为False
sheet1 = book.add_sheet(sheetname , cell_overwrite_ok=True)
3.3、 cell

写入单元格(cell) *** 作

sheet1.write(rowx,colx,value)
3.4、 保存Excel文件
# filepath为文件路径名
book.save(filepath)

 

4、 xlutils *** 作

xlutils 模块是 xlrd 和 xlwt 之间的桥梁,最核心的作用是拷贝一份通过 xlrd 读取到内存中的 .xls 对象,然后再拷贝对象上通过 xlwt 修改 .xls 表格的内容。 xlutils 可以将 xlrd 的 Book 对象复制转换为 xlwt 的Workbook 对象,具体使用时通常导入的是模块中的 copy 子模块中的 copy 函数。

import xlrd
import xlwt
from xlutils.copy import copy

book=xlrd.open_workbook(filepath)
new_book=copy(book)   #将xlrd对象拷贝转化为可写的xlwt对象

#转化后只能使用get_sheet(index)获取sheet
#通过get_sheet(book.sheet_names().index(sheetName))可以将表名转化为索引
sheet = new_workbook.get_sheet(0)

sheet.write(rowx,colx,value)

new_workbook.save(filepath) #保存工作簿
5、 其他

更详细的信息请查看:

  • xlrd开源库:

https://github.com/python-excel/xlrd

  • xlwt开源库:

https://github.com/python-excel/xlwt

  • xlutils开源库:

https://github.com/python-excel/xlutils

 

  • xlrd官方文档:

xlrd — xlrd 2.0.1 documentation

  • xlwt官方文档:

xlwt documentation — xlwt 1.3.0 documentation

  • xlutils官方文档:

xlutils documentation — xlutils 2.0.0 documentation
 

  • 更多的Excel文件 *** 作的Python开源库:

Python Resources for working with Excel - Working with Excel Files in Python (python-excel.org)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/922621.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存