Python处理Excel第三方库的常用方法

Python处理Excel

Python处理Excel经常会用到第三方库有xlrd、xlwt、openpyxl;下面介绍这三个第三方库常用的方法。

xlrd/xlwt与openpyxl的区别和效率

区别:python中xlrd/xlwt与openpyxl处理Excel的主要区别在于写入操作,其中xlwt针对Ecxec2007之前的版本,(.xls文件),其要求单个sheet不超过65535行,而openpyxl则主要针对Excel2007之后的版本(.xlsx文件),它对文件大小没有限制。

效率:整体而言,两种包对小文件的读写速度差别不大,而面对较大文件,xlrd/xlwt速度明显优于openpyxl,但因为xlwt无法生成xlsx是个硬伤,所以想要尽量提高效率又不影响结果时,可以考虑用xlrd读取,用openpyxl写入。

xlrd模块

# 导入模块
import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook("filename")  

# sheet相关操作
workbook.sheet_names()                     获取所有sheet的名字,返回列表
workbook.sheet_by_index()                  根据索引获取sheet对象
workbook.sheets()                          获取所以sheet对象,返回列表
sheet = workbook.sheet_by_name()           根据名字获取sheet对象
sheet.name                                 获取sheet对象的名字
sheet.nrows                                获取sheet对象的行数
sheet.ncols                                获取sheet对象的列数

# cell相关操作
sheet.cell(row,col)                        获取指定行和列的cell对象
sheet.row_slice(row,start_col,end_col)     获取指定行的某几列的cell对象
sheet.col_slice(col,start_row,end_row)     获取指定列的某几行的cell对象
sheet.cell_value(row, col)                 获取指定行和列的值
sheet.row_values(row,start_col,end_col)    获取指定行的某几列的值
sheet.col_values(col,start_row,end_row)    获取指定列的某几行的值
sheet.put_cell(row,col,ctype,value,xf_index)
										   在原有表的基础上增减新的内容,xf_index参数是去控制样式,写None即可
cell.ctype                                 cell的数据类型

# cell的数据类型
xlrd.XL_CELL_TEXT                          文本类型
xlrd.XL_CELL_NUMBER                        数值类型
xlrd.XL_CELL_DATE                          日期时间类型
xlrd.XL_CELL_BOOLEAN                       布尔类型
xlrd.XL_CELL_EMPTY                         空白数据类型

xlwt模块

# 导入模块
import xlwt

# 创建workbook对象
workbook = xlwt.Workbook()

#创建一个sheet
sheet = workbook.add_sheet("sheetname")

#写入单元格中,参数1:某行,参数2:某列,参数3:写入的值
sheet.write(row, col, value)

#保存表格
workbook.save('new_filename.xlsx')

openpyxl模块

# 导入模块
from openpyxl import load_workbook

# 打开Excel文件
workbook = load_workbook('filename.xlsx')

# 找到相应的表单
sheet = workbook['sheetname']

# 修改单元格的数据
sheet.cell(row,col).value = new_value

# 总行数
sheet.max_row

# 总列数
sheet.max_colum

# 该表单的所有行的数据的可迭代对象
sheet.rows

# 保存数据
workbook.save('filepath')

# 关闭文件,释放资源
workbook.close
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值