1、安装openpyxl模块
pip install openpyxl
2、打开excel文档
import openpyxl
openpyxl.load_workbook('example.xlsx')
3、从工作薄中取得工作表
wb.get_sheet_names()
sheet=wb.get_sheet_by_name('Sheet3')
sheet.title
activeSheet=wb.get_active_sheet() #获取工作薄的活动表
4、从表中取得单元格
import openpyxl
wb=openpyxl.load_workbook('example.xlsx')
sheet=wb.get_sheet_by_name('sheet1')
sheet['A1'].value
c=sheet['B1']
c.value
'Row '+str(c.row)+', Column '+c.column+' is '+c.value
'Cell '+c.coordinate+' is '+c.value
sheet.cell(row=1,column=2).value
sheet.get_highest_row() #获得高亮行
sheet.get_highest_column() #获得高亮列
5、列字母和数字之间的转换
字母->数字: openpyxl.cell.column_index_from_string()
数字->字母: openpyxl.cell.get_column_letter()
代码如下:
import openpyxl
from openpyxl.cell import get_column_letter,column_index_from_string
wb=openpyxl.load_workbook('example.xlsx')
sheet=wb.get_sheet_by_name('Sheet1')
get_column_letter(sheet.get_highest_column())
column_index_from_string('A')
6、从表中取得行和列
代码如下:
import openpyxl
wb=openpyxl.load_workbook('example.xlsx')
sheet=wb.get_active_sheet()
for cellObj in sheet.columns[1]:
print(cellObj.value)
7、保存excel
1)创建空的Workbook对象
代码如下:
import openpyxl
wb=openpyxl.Workbook()
wb.get_sheet_names()
sheet=wb.get_active_sheet()
sheet.title
2)保存excel save()函数
代码如下:
import openpyxl
wb=openpyxl.load_workbook('example.xlsx')
sheet=wb.get_active_sheet()
sheet.title='Spam'
wb.save('example_copy.xlsx') #保存excel
8、创建和删除工作表
create_sheet():创建工作表
remove_sheet():删除工作表
代码如下:
import openpyxl
wb=openpyxl.Workbook()
wb.create_sheet()
wb.create_sheet(index=0,title='First sheet')
wb.create_sheet(index=2,title='Middle sheet')
wb.get_sheet_names()
wb.remove_sheet(wb.get_sheet_by_name('Middle sheet'))
wb.get_sheet_names()
把值填入单元格:
sheet=wb.get_sheet_by_name('First sheet')
sheet['A1']='hello world'
9、设置单元格公式
import openpyxl
from openpyxl.styles import Font,Style
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet['A1']=200
sheet['A2']=300
sheet['A3']='=SUM(A2:A3)'
wb.save('writeFormula.xlsx')
10、设置行高和列宽
row_dimensions:行高
column_dimensions:列宽
代码如下:
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet['A1']='Tall row'
sheet['B2']='Wide column'
sheet.row_dimensions[1].height=70 #第一行行高
sheet.column_dimensions['B'].width=20 #第B列列宽
wb.save('dimensions.xlsx')
11、合并和拆分单元格
merge_cells():合并单元格
代码如下:
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
sheet.merge_cells('A1:D3')
sheet['A1']='Twelve cells merged together.'
sheet.merge_cells('C5:D5')
sheet['C5']='Two merged cells.'
wb.save('merged.xlsx')
unmerge_cells():拆分单元格
代码如下:
import openpyxl
wb=openpyxl.load_workbook('merged.xlsx')
sheet=wb.get_active_sheet()
sheet.unmerge_cells('A1:D3')
wb.save('merged.xlsx')
12、冻结窗格
sheet.freeze_panes='A2' 冻结行1
sheet.freeze_panes='B1' 冻结行A
sheet.freeze_panes='C1' 冻结行A和列B
sheet.freeze_panes='C2' 冻结行1和列A和列B
sheet.freeze_panes='A1'或None 没有冻结窗格
代码如下:
import openpyxl
wb=openpyxl.load_workbook('produceSales.xlsx')
sheet=wb.get_active_sheet()
sheet.freeze_panes='A2'
wb.save('freezeExample.xlsx')
13、图表
创建图表步骤:
1)创建一个Reference对象
2)通过传入的Reference对象,创建一个Series对象
3)创建一个Chart对象
4)将Series对象添加到Chart对象
5)可选设置Chart对象的drawing.top、drawing.left、drawing.width、drawing.height
6)将Chart对象添加到Worksheet对象
代码如下:
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.get_active_sheet()
for i in range(1,11):
sheet['A'+str(i)]=i
refObj=openpyxl.charts.Reference(sheet,(1,1),(10,1))
seriesObj=openpyxl.charts.Series(refObj,title='First series')
charObj=openpyxl.charts.BarChart()
chartObj.append(seriesObj)
charObj.drawing.top=50
charObj.drawing.left=100
charObj.drawing.width=300
charObj.drawing.height=200
sheet.add_chart(chartObj)
wb.save('sampleChart.xlsx')
条形图:openpyxl.charts.BarChart()
折线图:openpyxl.charts.LineChart()
散点图:openpyxl.charts.ScatterChart()
饼图:openpyxl.charts.PieChart()