基本操作
excel文件
example.xlsx
导入模块
import openpyxl
1.读取excel文档
wb = openpyxl.load_workbook('excelDemo/example.xlsx')
2.在工作薄中获取工作表
返回一个列表,储存excel表中所有的sheet工作表;
print(wb.sheetnames)
获取当前的活动表,返回一个worksheet对象
print(wb.active)
3.获取工作表中,单元格的信息
sheet = wb['example']
print(sheet['A1'])
print(sheet['B1'].value)
print(sheet.cell(row=3, column=2))
print(sheet.cell(row=3, column=2).value)
4.sheet属性
print(sheet.max_column)
print(sheet.max_row)
print(sheet.title)
#设置sheet标题
sheet.title = 'example1'
print(sheet.title)
读取信息
for row in sheet.rows:
for cell in row:
print(cell.value, end='\t')
print('\n')
读取Excel表中的内容,并保存
import openpyxl
def readwb(wbname, sheetname=None):
wb = openpyxl.load_workbook(wbname)
if not sheetname:
sheet = wb.active
else:
sheet = wb[sheetname]
all_info = []
# 依次遍历工作表的每一行;返回的是元组里面多个Cell对象;
for row in sheet.rows:
# 通过列表生成式, 获取每一行的每个单元格的内容;
child = [cell.value for cell in row]
all_info.append(child)
return sorted(all_info, key=lambda item: item[2])
def createwb(wbname):
# 判断是否有后缀名, 如果没有,则增加;
if not wbname.endswith('.xlsx'):
wbname = wbname + '.xlsx'
wb = openpyxl.Workbook()
# 保存excel表
wb.save(filename=wbname)
print("新建Excel[%s]成功!" %(wbname))
def save_to_excel(data, wbname, sheetname='Sheet1'):
"""
保存排序好的数据信息到新的excel表中
"""
createwb(wbname)
print("写入Excel[%s]中...." %(wbname))
wb = openpyxl.load_workbook(wbname)
sheet = wb.active
# 修改工作表的名称;
sheet.title = sheetname
# row代表索引, item代表一行内容; eg:['xxx', 'apple', 12];
for row, item in enumerate(data):
# column代表索引, cellValue代表每个单元格的内容, eg:'apple'
for column, cellValue in enumerate(item):
# 将数据信息写入excel单元格;
# 单元格的行和列没有0;
sheet.cell(row=row+1, column=column+1, value=cellValue)
wb.save(filename=wbname)
print("保存成功!")
写入数据到Excel表
import openpyxl
def createwb(wbname):
try:
if not wbname.endswith('.xlsx'):
wbname = wbname + '.xlsx'
wb = openpyxl.Workbook()
wb.save(filename=wbname)
print("新建Excel[%s]成功!" %(wbname))
return wbname
except Exception as e:
print(e)
def save_to_excel(sheetname, wbname):
print("写入Excel[%s]中...." %(wbname))
wb = openpyxl.load_workbook(filename=wbname)
sheet = wb.active
sheet.title = sheetname
for row in range(3):
for column in range(4):
sheet.cell(row=row+1, column=column+1, value=1)
wb.save(filename=wbname)
print("保存成功!")
save_to_excel('example',createwb('hello'))