python处理excel
编辑Excel
编辑Excel
Table of Contents
- 1. 因为工作需要,对Excel进行解析,处理,不多,但是也费时间,还容易出错
- 2. 选择包,可选的包 有xlrd,xlwt,openpyxl;但是xlrd和xlwt在官方文档上写的不支持最新的Excel,所以选用了openpyxl.更多的内容可以自行查看并选择一个适合你的:
- 3. 安装包 openpyxl
- 4. 要处理Excel文件,有三个需要处理的内容(读取): 4.1. 文件本身 4.1.1. excel = openpyxl.loadwoekbook('文件名') 该方法返回openpyxl.workbook.workbook.Workbook类对象当文件不存在时抛出异常,表明文件不存在
- 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.1. 获取单元格
- 4.4.1. excel.createsheet('sheetname')
- 4.4.2. excel.createsheet('sheetname',index)
- 4.6.1. excel.copyworksheet(sourcesheet) 复制一个sheet页
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 获取单元格
cellA1 = sheet['A1'] # a的大小写不限定,但最好大写吧,和Excel保持一致当'A0'时,取全部值
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列的单元格对象
cellxx = sheet['A1':'B14'] 获取A1到B14的区域 cellrow = sheet['c'] sheet['c:d'] 获取c/c和d的前10行(默认为10行) cellcol = sheet[ 10 ] 获取第10行的A~J单元格 cellcol2 = sheet[10:11] 获取第10,11行的A~J单元格 maxcol = sheet.maxcolumn 获取该sheet页有数值的最大列 maxrow = sheet.maxrow 获取该sheet页有数值的最大行 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',),..]
sheet.rows 一行行地返回所有单元格对象
list(sheet.rows) #=> [('A1','B1'),('A2','B2')…]
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