python excel 处理 xlrd & xlwt &xlutils

python excel 处理

 

方案一 xlrd & xlwt &xlutils

 

使用xlrd 用来读取 xls 文件

xlrd --> xls read

 

安装

pip install xlrd

 

使用

import xlrd

book = xlrd.open_workbook("myfile.xls") # 创建读取xls 对象

print("表格文件的sheet页有 {0}".format(book.nsheets))
print("表格文件的sheet页名: {0}".format(book.sheet_names()))
sh = book.sheet_by_index(0) # 选择第一页操作
print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))

for rx in range(sh.nrows): # 按行读取
   print(sh.row(rx))
   
for row in range(sh.nrows):  # 按单元格读取
   for col in ncols range(sh.ncols)
  print("单元格 内容 {0}".format(sh.cell_value(rowx=row, colx=col)))

 

注意

不支持以下内容

图表、宏、图片、任何其他嵌入式对象,包括嵌入式工作表。

VBA模块

公式,但会提取公式计算的结果。

评论

超链接

自动筛选、高级筛选、透视表、条件格式、数据验证

不支持受密码保护的文件,此库无法读取这些文件。

 

1.2.0 1.2.0 1.2.0 以上的版本不支持读取xlsx了很奇怪

image-20220113143140310

2020 的更新中这个库去除了对xls 以外格式的支持而1.2 版本只能支持python3.7

除此之外xlrd 都是好用的

 

使用xlwt 用来写入 xls 文件

xlwt --> xls write

安装

pip install xlwt

 

使用

from xlwt import Workbook

book = Workbook(encoding='utf-8') # 创建 Workbook 对象
sheet1 = book.add_sheet('Sheet 1') # 创建sheet页
book.add_sheet('Sheet 2')
sheet1.write(0,0,'A1') # 写入单元格
sheet1.write(0,1,'B1')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')

book.save('simple.xls') # 保存文件

image-20220113151559287

 

此库17年后就没有更新过了

 

xlutils :对于xlrd和xlwt 的扩展工具

安装

pip install xlutils 

 

使用

from xlrd import open_workbook
from xlwt import easyxf
from xlutils.copy import copy
rb = open_workbook('source.xls',formatting_info=True)
rs = rb.sheet_by_index(0)
wb = copy(rb)
ws = wb.get_sheet(0)
plain = easyxf('')
for i,cell in enumerate(rs.col(2)):
if not i:
continue
ws.write(i,2,cell.value,plain)
for i,cell in enumerate(rs.col(4)):
if not i:
continue
ws.write(i,4,cell.value-1000)
wb.save('output.xls')

 

 

 

 

文档链接

链接:https://pan.baidu.com/s/1aSE9Q9BV2kwt1tmjrh0mCA 提取码:1234 --来自百度网盘超级会员V5的分享

 

 

 

原文地址:https://www.cnblogs.com/renoyuan/p/15797901.html