Chinaunix首页 | 论坛 | 博客
  • 博客访问: 958444
  • 博文数量: 109
  • 博客积分: 554
  • 博客等级: 中士
  • 技术积分: 2577
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-04 12:49
文章分类

全部博文(109)

文章存档

2019年(5)

2016年(7)

2015年(9)

2014年(1)

2013年(71)

2012年(16)

分类: Python/Ruby

2016-06-09 23:21:23

1. excel文件术语:

workbook: 每个excel文件就是一个workbook

sheet: 对应excel下面的’sheet1’,’sheet2'

cell: 对应每个单元格

2. python读写excel的第三方库

Python-Excel的第三方库(xlrd、xlwt、xlutils)
这种方法其实是由三个库组成:
* xlrd (Excel Reader): 读
支持Python 2.x和3.x,支持XLS和XLSX文件读取。
* xlwt (Excel Writer): 写
仅支持Python 2.x,仅支持写XLS。
但是后来又找到了这个版本的一个支持Python 3.x的fork:xlwt-future,不过还是只支持写XLS。
* xlutils: 更多高级操作,依赖前2个库
仅支持Python 2.x。


openpyxl
支持Python 2.x和3.x,仅支持XLSX的读取和写入。

 

3. openpyxl 使用

3.1 打开excel

wb = load_workbook(‘file.xlsx)

ws = wb.get_active_sheet(), 获取一个sheet,默认是0

 

3.2 按索引遍历excel的所有sheet

sheet_names = wb.get_sheet_names()

ws = wb.get_sheet_by_name(sheet_names[index])

3.3 获取对应cell的值

按行号读取:

c= ws.cell(‘A5’).value

d=ws.cell(row=3, column=4).value

 

4. 创建workbook

wb = Workbook()

5. 创建sheet

wb.create_sheet() #在尾部插入sheet

wb.create_sheet(0) #在首部插入sheet

6. 写入数据到cell

ws.cell(‘A3) = 20

ws.cell(row=3, column=4) = 24.5

 

7. 保存文件

wb.save(‘file.xlsx')

例子:

import openpyxl

def get_cells(worksheet):
for i in range(100):
lst=[]
for j in range(20):
lst.append(worksheet.cell(row=i+1, column=j+1).value)
print("row %d" % i , lst)



wb=openpyxl.Workbook(optimized_write=True)
ws=wb.create_sheet()

for irow in range(100):
ws.append(['%d' % i for i in range(20)])
wb.save(filename='test.xlsx')

wb = openpyxl.load_workbook('test.xlsx', use_iterators=True)
sheetnames = wb.get_sheet_names()


ws = wb.get_sheet_by_name(sheetnames[0])
get_cells(ws)



阅读(2214) | 评论(0) | 转发(0) |
0

上一篇:Mac 下CLion开发Qt5

下一篇:win10 wsl 配置相关

给主人留下些什么吧!~~