openpyxl作为excel众多的一员,具有简单易用,功能广泛的特点。


  • 环境:

    win 10

    python 3.6

    pip 9.0.1

    openpyxl 2.4.8


  • 安装openpyxl

    打开cmd命令行,输入pip install openpyxl,回车执行命令。

    wKiom1ncz-aRZyYjAAA3brlMF1U971.png


  • 学习

    •     创建excel文件(Create a workbook)

                首先导入openpyxl库中的Workbook

                

from openpyxl import Workbook
wb = Workbook()


    •     创建worksheet(Create sheet)


ws = wb.create_sheet(title='math',index=0)

参数说明:

title,定义sheet名称;

index,定义新建sheet的排序位置。该参数省略时,新建的sheet添加到最后。


  • 访问单元格(Accessing one cell)

#method1
ws['A4'] = 4  

#method2
d = ws.cell(row=4, column=2, value=10)

访问单元格的方法同excel,使用A1,B12的方法即可


  • 访问单元块(Accessing many cells)


#method1
cell_range = ws['A1':'D2'] 

#method2
ws.iter_rows(min_row=1,max_row=3, min_col=2,max_col=3) #选定A1:C3的单元块


    •     数据存储(data storage)

c = ws['A12']
c.value = 'hellos'


    •     保存文件(save file)

wb.save('balances.xlsx')


    • 加载文件

from openpyxl import load_workbook
wb = load_workbook('..\\..\\file\\math.xlsx')
print(wb.get_sheet_names())


  • 学以致用

from openpyxl import  Workbook

#新建一个workboot
wb = Workbook()

#创建一个sheet,sheetname是math,放在第一个位置
ws = wb.create_sheet('math',0)

m = 0
#使用访问单元块的方法,在遍历的同时进行单元格的赋值
for row in ws.iter_rows(min_row=1,max_row=9,min_col=1,max_col=9):
#for row in ws['A11':'I19']:
    m=m+1
    n = 0
    for cell in row:
        n=n+1
        cell.value=m*n

wb.save('..\\..\\file\\math.xlsx')

使用访问单元块的方法,实现99乘法表,执行的结果如下:

wKioL1nceKzz7tCIAAAmx3OIdfo221.png

  • 参考资料

https://openpyxl.readthedocs.io/en/latest/tutorial.htm


  • 补充说明

在查看资料时,还发现了一篇文章,比较了多种excel库,很好的文章,留看。

http://www.jianshu.com/p/be1ed0c5218e