读写excel比较方便。并且支持xlsx格式的处理。网上也存在一些这方面的介绍,但是版本更新了多次,部分内容不适用
版本:openpyxl 2.5.1
- 读: 方法:获取工作簿:openpyxl.load_workbook("20181.xlsx")
获取工作薄的工作表,Sheet1为新建的sheet名:ws=wb["Sheet1"]
wb.active:不写其实也可以
- 写:wb=workbook()# 新增一个新excel
写入单元格:ws["A1"]=31
写入sheet名称:ws.title='AAAA'
- 读写:
#coding:utf-8
import openpyxl
wb=openpyxl.load_workbook("20181.xlsx")
wb.active
ws=wb["Sheet1"]
ws["A1"]=31
wb.save("20181.xlsx")#保存
wb.save("20181.xlsx")#保存
打开文档后,
- 其他:
#coding=utf-8
# python 处理excel的第三方库有:xlrd(读excel)、xlwd(写excel)、openpyxl(读写excel)
#比较难缠的问题:unicode编码和excel中记录的时间
import openpyxl
workbook=openpyxl.load_workbook(r"2018.xlsx")
ws=workbook.active
print (ws.title)
# 读取一行或者一列
for cell in ws['1']:#行
# for cell in ws['A']:#列
if cell.coordinate=='BB1':
break
print(cell.coordinate,cell.value) #coordinate 坐标
# worksheets=workbook.get_sheet_names()# 获取所有sheet名称,方法已废弃
worksheets=workbook.sheetnames#方法当属性用@property
# sheet=workbook.get_sheet_by_name(worksheets[1])#获取/激活一个工作表,方法已废弃
sheet=workbook[worksheets[1]]#获取/激活一个工作表
# 两种读取方式
print sheet['B1'],sheet['B1'].value
print sheet.cell(row=1,column=2).value
获取最大行数
print(sheet.max_row,sheet.max_column)
# 查询统计表的名称
for r in range(1,sheet.max_row-1):
name=sheet.cell(row=r, column=2).value
value=sheet.cell(row=r, column=sheet.max_column-1).value
if not isinstance(value,long) :#判断类型
print 'pass'
print name,value
# 字母和数字之间转换
from openpyxl.utils import get_column_letter,column_index_from_string
print get_column_letter(1)
print get_column_letter(11)
print column_index_from_string('A')
#获取A2:B4 单元格区域
print '************************************'
print tuple(sheet["A2":"B4"])
for rowOfCell in sheet["A2":"B4"]:
for temp in rowOfCell:
if __name__ == '__main__':
print temp.coordinate,temp.value