python基础===Excel处理库openpyxl

openpyxl是一个第三方库,可以处理xlsx格式的Excel文件。

安装:

pip install openpyxl

对如下excel进行读取操作,如图:

python基础===Excel处理库openpyxl

from openpyxl import load_workbook

wb = load_workbook("123.xlsx")
print(wb.get_sheet_names())
#>>>[Sheet111,Sheet222,Sheet333] a_sheet = wb.get_sheet_by_name("Sheet111")
print(a_sheet.title)
#>>>Sheet111 a1 = a_sheet['A1']
print(f'({a1.column}, {a1.row}) is {a1.value}')
#>>>3 a1_too =a_sheet.cell(row = 4, column = 2)
print(a1_too.value)
#>>>fvf # 获得最大列和最大行
print(a_sheet.max_row)
#>>>6
print(a_sheet.max_column)
#>>>4 for row in a_sheet.rows:
for cell in row:
print(cell.value,end = '\t')
print('\n') '''
>>>
3 3 None None 4 None None None 5 None fv fv 6 fvf None None 7 None None None 909 None None None
''' #获取某一行或者某一列的数据
for cell in list(a_sheet.rows)[3]:
print(cell.value,end = "\t")
#>>>6 fvf None None #获取任意区间的单元格
for i in range(2, 4):
for j in range(1, 3):
print(a_sheet.cell(row=i, column=j).value,end = "\t")
#>>>4 None 5 None

对文件的写入操作:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
#创建一张新的表
ws1 = wb.create_sheet("botoo") #写入数据
ws1["a1"]=10086
#或者
ws1["a2"].value= 1111111 #为B列创建数据 1~19
for i in range(1,20):
ws1["B%d" %i] .value= i #为20行创建数据 1~10
for i in range(1,20):
ws1.cell(column = i, row = 20).value = i wb.save("这是python写入3.xlsx")

效果如下:

python基础===Excel处理库openpyxl

*当需要对已有文件进行更改的时候,需要使用:

>>> from openpyxl import load_workbook

>>>wb2 = load_workbook('test.xlsx')

>>> print wb2.get_sheet_names()

['Sheet2', 'New Title', 'Sheet1']

否则文件内容会被覆盖。

参考文章:

http://openpyxl.readthedocs.io/en/stable/

https://blog.csdn.net/hunter_wyh/article/details/78498323

http://www.pythontab删去汉字.com/html/2018/pythonhexinbiancheng_0503/1286.html

(不知道为什么Python中文开发社区的链接放不上去)

上一篇:11-SSH综合案例:前台用户模块:激活邮件的发送


下一篇:中介者模式(QQ聊天室我觉得是个很生动的例子简单易懂)