安装工具包
pip install openpyxl
工作簿的使用
注意读取的EXCEL文件只能是xlsx后缀的噢~
# 创建工作簿
wb = openpyxl.Workbook()
wb.save('demo.xlsx') # 在源文件修改后也可以作为另存为的选项
# 打开工作簿
wb = openpyxl.load_workbook('test.xlsx', data_only=True) # 读取公式设置
# 查看sheet名
print(wb.sheetnames)
# 获取sheet的两种方式
ws_1 = wb['sheet1'] # 名字
ws_1 = wb.worksheets[0] # 索引
工作表的使用
# 获取工作表名称
print(ws_1.title)
# 修改工作表名称
ws_1.title = 'sheet2'
# 删除工作表
wb.remove(wb['sheet1'])
# 复制工作表
copy_sheet = wb.copy_worksheet(wb['产品功能_H'])
# 创建工作表
wb.create_sheet('sheet3')
读写数据
属性 | 说明 |
---|---|
row | 单元格所在行 |
column | 单元格所在列 |
value | 单元格的值 |
coordinate | 单元格的坐标 |
# 获取A1的值
ws_1['A1'].value
ws_1.cell(row=1,column=1).value
ws_3.cell(1,1).value
# 获取区域
ws_1['A1:B2']
for x in ws_1['A1:B2']:
for x in x:
print(x.value)
# 最大行
ws_1.max_row
# 最大列
ws_1.max_column
# 获取单元格行列
ws_1['A1'].row
ws_1['A1'].column
# 写入数据(单个单元格)
wb_1.cell(15,15,value='test')
wb_1['AA']='test'
# 在最后一列写入数据
wb_1.append([1,2,3,4])
# 写入数据(区域)
for x in wb_1['A1:E4']:
for x1 in x:
x1.value = 1
# 插入是向前
# 删除是往后
wb_1.insert_cols(idx=2,amount=5)
wb_1.insert_rows(idx=2,amount=5)
wb_1.delete_cols(idx=2,amount=5)
wb_1.delete_rows(idx=2,amount=5)
# 合并与取消合并单元格
wb_1.merge_cells('B3:F5') # 合并
wb_1.unmerge_cells('B3:F5') # 取消合并
# 字体设置
font = openpyxl.styles.Font(name=u'微软雅黑', bold=True, italic=True, size=9)
wb_1['A1'].font = font
图表操作
# 柱状图
# 新建一个柱状图
chart = openpyxl.chart.BarChart()
# 设定数据引用范围
data = openpyxl.chart.Reference(wb_1,min_row=1,max_row=5,min_col=2,max_col=3)
# X轴项目名称
project= openpyxl.chart.Reference(wb_1,min_row=2,max_row=5,min_col=1)
# 给柱状图添加数据,数据源中有标题,因为数据中有标题行,这里为True
chart.add_data(data,titles_from_data=True)
# 设定X轴的项目
chart.set_categories(project)
wb_1.add_chart(chart,"F1")