openpyxl只能操作.xlsx文档,所以在使用该模块前必须把.xls另存为.xlsx格式。
openpyxl的安装和导入
pip install openpyxl #命令行下输入
import openpyxl #导入模块
openpyxl的常用读取
>>> wb = openpyxl.load_workbook('example.xlsx') #打开excel工作簿
>>> sheet_names = wb.sheetnames #获取工作簿中所有表名,返回表名的列表
>>> ##['sheet1', 'Sheet2', 'Sheet3']
#读取工作表及表属性
>>> sheet = wb['sheet1'] #读取工作表sheet1
>>> sheet.max_row #获取最大行数
>>> sheet.max_column #获取最大列数
>>> sheet.title #获取表名
>>> ##'sheet1'
>>> wb.active #获取当前工作簿的活动表
>>> ##<Worksheet "Sheet3">
#读取单元格
>>> sheet['A1'] #读取单元格A1,返回一个cell对象
>>> ##<Cell 'sheet1'.A1>
>>> sheet['A1'].value #获取单元格A1的值
>>> ##'序号'
>>> sheet1.cell(row=1, column=2) #获取第1行第2列的单元格
>>> ##<Cell 'sheet1'.B1>
>>> sheet1.cell(row=1, column=2).value #获取第1行第2列的单元格的值
>>> ##'学校名称'
#遍历单元格
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['sheet1']
for i in range(3,18,2): #遍历某一列单元格
print(sheet.cell(row=i, column=2).value) #从第3行第2列开始打印,步长2
for rows in sheet['A1':'C3']: #遍历矩形范围内单元格
for col in rows:
print(col.coordinate, col.value) #打印单元格坐标和值
image.png
#创建和保存excel
wb = openpyxl.Workbook() #创建工作簿
sheet = wb.acitve #获取当前工作表
sheet.title = 'newname' #为工作表改名为‘newname’
wb.create_sheet('other') #创建一个新的工作表,名为'other'
wb.create_sheet(index=0, title='First Sheet') #在最开始处创建工作表,名为‘First Sheet’
wb.create_sheet(index=2, title='Middle Sheet') #在第3个位置创建表,名'Middle Sheet'
wb.save('D:/test.xlsx') #在D盘根目录下保存工作簿,名为“test.xlsx”
image.png
#两种方法删除工作表
wb = openpyxl.load_workbook('D:/test.xlsx')
wb.remove(wb['other']) #删除工作表‘other’
del wb['Middle Sheet'] #删除工作表'Middle Sheet'
wb.save('D:/test.xlsx') #最后要保存一下
image.png
#单元格写入值
wb = openpyxl.load_workbook('D:/test.xlsx')
sheet = wb['First Sheet']
sheet['A1'] = 'hello' #A1单元格写入'hello'
sheet['B1'] = 'world' #B1单元格写入'world'
s = 'helloworld'
for i in range(2,12):
sheet.cell(row=i, column=1).value = s[i-2] #遍历字符串s,从第2行第1列开始竖向写入
wb.save('D:/test.xlsx')
image.png
网友评论