Python 读写excel文件

2270阅读 0评论2016-06-09 enzo26
分类:Python/Ruby

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)



上一篇:Mac 下CLion开发Qt5
下一篇:win10 wsl 配置相关