【未完成】欢迎添加问题
openpyxl能做到什么。
更系统的文档。
有没有覆盖的函数。
创建新行、新列、统计有多少行、多少列,中文编码问题,单元格为空的问题。
既然是处理excel的,excel自身的特点,比如excel函数、图表、合并,等等的特性
简介
官方文档 写的不太好,大致就是入门的一些操作和比较有特点的地方。
源代码 包含各个类和函数的代码,比较有用。
创建
创建workbook:
from openpyxl import Workbook
wb=Workbook()
创建sheet:
1,默认表,在创建wb时默认就创建了sheet,使用
ws=wb.active得到
2,创建新表
ws1=wb.create_sheet(title,index) #插入到结尾
ws2=wb.create_sheet(0)#插入到开头
wsn=wb.create_sheet(n)#插入到第n个位置
创建新行:
这个方法openpyxl没有给定函数,overstackflow有相关函数,请见:[添加行][3]
创建新列
这个方法openpyxl没有给定函数,overstackflow有相关函数,请见:[添加列][4]
保存
wb.save(file)
读
读workbook 文档
使用:
from openpyxl import load_workbook
wb=load_workbook(filename)
来源于:openpyxl.reader.excel.load_workbook(filename, read_only=False, use_iterators=False, keep_vba=False, guess_types=False, data_only=False)
注:filename
是路径+文件名*read_only
:只读模式,会使得读取更快use_iterators
:该lazy模式,默认采用只读模式,所有的worksheet将openpyxl.worksheet.iter_worksheet.IterableWorksheet
类型的
它的特点是跳过empty cells
-
读worksheet
ws=wb[sheetname]
ws=wb.get_sheet_by_name(sheetname)
想要知道sheet名可以用wb.get_sheet_names()
得到
-
逐行读
ws.iter_rows(range_string=None, row_offset=0, column_offset=0)
range-string(string)
-单元格的范围:例如('A1:C4')row_offset
-添加行column_offset
-添加列
返回一个生成器,
注意取值时要用value,例如:
for var in ws.iter_rows():
print var[0].value
读指定行、指定列
rows=ws.rows
#row是可迭代的columns=ws.columns
#column是可迭代的
打印第n行所有数据print rows[n]
#不需要用.valueprint columns[n]
#不需要用.value
-
读连续单元格
cell_range = ws['A1':'C2']
-
读指定的单元格
ws.cell('B12').value
ws.cell(row=12,column=2).value -
读所有单元格数据
get_cell_collection()
写
写一行源代码和解释
ws.append(iterable)
添加一行到当前sheet的最底部iterable
必须是list,tuple,dict,range,generator
类型的。
1,如果是list
,将list
从头到尾顺序添加。
2,如果是dict
,按照相应的键添加相应的键值。
append([‘This is A1’, ‘This is B1’, ‘This is C1’])
append({‘A’ : ‘This is A1’, ‘C’ : ‘This is C1’})
append({1 : ‘This is A1’, 3 : ‘This is C1’})
写一列
-
写一格
ws['A4'] = 4
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。