python基础===Excel处理库openpyxl

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

 

安装:

pip install openpyxl

 

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

 

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")

 

效果如下:

 

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

 >>> 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中文开发社区的链接放不上去)

 

posted @ 2018-05-07 22:21  AAA五金批发王建军  阅读(480)  评论(0编辑  收藏  举报