openpyxl是Python下的Excel库,它能够很容易的对Excel数据进行读取、写入以及样式的设置,能够帮助我们实现大量的、重复的Excel操作,提高我们的办公效率,实现Excel办公自动化。相比xlrd和xlwt而言它支持.xlsx,而xlrd和xlwt只支持.xls,但是相比速度而言xlrd更胜一筹。
pip install openpyxl
1.读工作表
import openpyxl
def read():
# 获取工作簿对象
wb = openpyxl.load_workbook('IQAI.xlsx')
# 获取所有工作表名称
print(wb.sheetnames)
# 获取工作表对象,三种方法
sheet1 = wb.worksheets[0]
sheet2 = wb['Sheet1']
sheet3 = wb[wb.sheetnames[0]]
print(sheet1, sheet2, sheet3)
# 获取工作表名称
title = sheet1.title
print(title)
# 获取工作表总行数
rows = sheet1.max_row
# 获取工作表总列数
cols = sheet1.max_column
# 总行,总列
print(rows, cols)
# 获取某一单元格内容(行, 列),例:2行1列,列表从1开始;也可以直接sheet1.cell(2, 1).value
cell = sheet1.cell(row=2, column=1).value
print(cell)
# 读取第一行的所有内容
row_list = []
for i in range(1, cols + 1):
cell_value = sheet1.cell(row=1, column=i).value
row_list.append(cell_value)
print(row_list)
# 读取第一列的所有内容
column_list = []
for i in range(1, rows + 1):
cell_value = sheet1.cell(row=i, column=1).value
column_list.append(cell_value)
print(column_list)
def main():
read()
if __name__=='__main__':
main()
2.写入工作表
import openpyxl
def write():
# 创建一个新的工作簿对象
wb = openpyxl.Workbook()
# 获取工作表对象(sheet)
ws = wb.active
print(ws)
# 设置Sheet名称
ws.title = '学生表'
# 创建一个新sheet,可以指定名称,index表示新创建的工作簿放在第几个位置, index从0开始计数
ws_1 = wb.create_sheet(index=1, title='成绩表')
# 删除sheet表
del wb['成绩表']
# 写入单个单元格
ws['A1'] = '姓名'
ws['B1'] = '班级'
# 写入单个单元格(行,列,内容)
ws.cell(3, 4, '内容1')
# 写入多个单元格(追加模式,不会覆盖之前的,从有数据的下一行开始)
ws.append(['姓名', '班级', '年龄'])
ws.append(['王明', '三年级一班', '9岁'])
# 复制"学生表",新sheet名称为"学生表 Copy"
ws_2 = wb.copy_worksheet(wb['学生表'])
# 修改"学生表 Copy"名称为"备份"
ws_2.title = '备份'
# 获取所有工作表名称
print(wb.sheetnames)
# 保存
wb.save('1.xlsx')
def main():
write()
if __name__=='__main__':
main()