python处理excel

 

编辑Excel

编辑Excel

1 因为工作需要,对Excel进行解析,处理,不多,但是也费时间,还容易出错

2 选择包,可选的包 有xlrd,xlwt,openpyxl;但是xlrd和xlwt在官方文档上写的不支持最新的Excel,所以选用了openpyxl.更多的内容可以自行查看并选择一个适合你的: http://www.python-excel.org/

3 安装包 openpyxl

pip3 install openpyxl

import openpyxl

4 要处理Excel文件,有三个需要处理的内容(读取):

 

4.1 文件本身

 

4.1.1 excel = openpyxl.loadwoekbook('文件名') 该方法返回openpyxl.workbook.workbook.Workbook类对象当文件不存在时抛出异常,表明文件不存在

4.2 sheet页 openpyxl.worksheet.worksheet.Worksheet

 

4.2.1 获取所有sheet页的名字 sheetNames = excel.getsheetnames() 或 excel.sheetnames

4.2.2 sheet = excel.getsheetbyname('sheet1') 获取sheet1页的sheet页对象

4.2.3 sheet = excel.getactivesheet() 或者 sheet = excel.active 获取当前活动的页面,Excel第一次被打开时活动页面为sheet1

4.2.4 title sheet.title sheet页的名称 (读写)

4.3 cell单元格 openpyxl.cell.cell.Cell

 

4.3.1 获取单元格

 
  1. cellA1 = sheet['A1'] # a的大小写不限定,但最好大写吧,和Excel保持一致

    当'A0'时,取全部值

  2. cellrc = sheet.cell(row=10,column=10) 获取10行10列的值 cell(row,column,value=10) 将指定位置的值设置为value

    for i in range(1,6): for j in range(1,5): print(sheet.cell(row=i, column=j) 输出前5行4列的单元格对象

  3. cellxx = sheet['A1':'B14'] 获取A1到B14的区域
  4. cellrow = sheet['c'] sheet['c:d'] 获取c/c和d的前10行(默认为10行)
  5. cellcol = sheet[ 10 ] 获取第10行的A~J单元格
  6. cellcol2 = sheet[10:11] 获取第10,11行的A~J单元格
  7. maxcol = sheet.maxcolumn 获取该sheet页有数值的最大列
  8. maxrow = sheet.maxrow 获取该sheet页有数值的最大行
  9. for i in sheet.columns: 一列列地返回所有单元格对象

    print(i)

    columns返回一个全部有数值行的迭代器,迭代器的值类型为元组,当有几列有值,就返回几个元组 for i in sheet.columns: for j in i: print(j.value)

    这样才能得到单元格的值

    list(sheet.columns)#=> [('A1','A2','A3'),('B1','B2',),..]

  10. sheet.rows 一行行地返回所有单元格对象

    list(sheet.rows) #=> [('A1','B1'),('A2','B2')…]

  11. values 一行行地返回所有单元格的值

    list(sheet.values) #=> [('A1','B1'),('A2','B2','C2'),….]

4.4 创建新的sheet

 

4.4.1 excel.createsheet('sheetname')

写入新的sheet页,放在最后面

4.4.2 excel.createsheet('sheetname',index)

在index位置插入新的sheet页

4.5 写cell 内容直接在获取到时直接设置即可

4.6 其他方法

 

4.6.1 excel.copyworksheet(sourcesheet) 复制一个sheet页

5 更多关于openpyxl的内容请看: https://openpyxl.readthedocs.io/en/default/tutorial.html

Author: vz liū

Created: 2017-03-22 Wed 20:48

Emacs 25.1.1 (Org mode 8.2.10)

Validate

 

posted @ 2017-03-22 20:55  自动化昵称  阅读(1068)  评论(0编辑  收藏  举报