openpyxl详细教程

openpyxl:

from openpyxl import Workbook, load_workbook
wb = load_workbook('test.xlsx')#打开一个workbook,如果是只读的操作,最好加上data_only = True,否则,有些用函数,例如sum计算出来的值就会显示公式而不是内容
readonly = True,否则,打开大文件的时候会很慢

wb = Workbook() #新建一个workbook

wb.save('C:\\test.xlsx') #保存

#操作sheet
ws = wb.active 或者ws.get_active_sheet() #调用正在运行的工作表
wb.sheetnames #获取所有的sheet(列表)
ws = wb.sheetnames[0] #索引获取sheet
ws = wb.get_sheet_by_name('Sheet1') 同ws=wb['Sheet1'] #获取指定的sheet
ws = wb.create_sheet('mysheet',0) #创建sheet,0指定位置,默认插在指定位置的后面
wb.remove_sheet(wb['Sheet1']) #删除sheet
ws.title = 'New Title' 设定sheet的名字
source = wb['Sheet1']
target = wb.copy_worksheet(source) #复制sheet


操作单元格
print wb['Sheet1']['A1'].value #打印Sheet1的A1单元格的值
print wb.sheetnames #列表打印所有的sheet的name
ws.rows 同 ws.iter_rows() #打印所有行(生成器)
ws.columns 同ws.iter_cols()#打印所有列(生成器)
ws['A'] #A那一列(元组)
ws['A:C'] #A到C列
ws[1]#第1行(元组)
ws[1:3] #第1到3行(元组)
ws.cell(row = 1,column = 1).value 同 ws[1][1].value #ws[i][j]这种方法j(列号)可以为负索引,且i,j都可以为切片,即[2:3]这种格式


ws['A1'] = 'test'#特定单元写入值
ws.cell(row = 4,column = 2,value=‘test’) ##特定单元格写入值
ws.append([1,2,3])##可以用列表来写入

公式
ws['A4']  =  "=SUM(A1:A3)"

合并单元格
ws.merge_cells(start_row = 2,start_column = 1,end_row = 2,end_column = 2)

插入图片
from openpyxl.drawing.image import Image
img = Image(r'.\test.png')
img_size=(50.50)
img.width,img.height = img_size #设定图片大小
ws.column_dimensions[A].width = 100
ws.row_dimensions[1].height = 100   #修改第A列的宽度和第1行的高度
ws.add_image(img,'A1')


设置样式
from openpyxl.styles import colors from openpyxl.styles import Font
style = Font(name='宋体',color=colors.RED,italic=True,size=14) #colors='#AABBCC'也可以,Font的其它属性可以dir(Font)看到
ws['A1'].font = font #设定指定单元格的样式
col = ws.column_dimensions['A']
col.font = style #设定列的样式
row = ws.row_dimensions[1]
row.font = style #设定行的样式

颜色背景
from openpyxl.sytels import PatternFill
sytle = PatternFill('solid',fgColor='#AABBCC',bgColor='#DDEEFF')
ws['A1'].fill = style #指定单元格颜色
col = ws.column_dimensions['A']
col.fill = style #设定列的颜色
row = ws.row_dimensions[1]
row.fill = style #设定行的颜色

画图
from openpyxl.chart import Series,LineChart,Reference
chart = LineChart() #图标对象
chart.title = '图标标题'
chart.style = 8  #线的sytle
data = Reference(ws,min_col=5,min_row=4,max_col=10,max_row=4) #数据
serieobj = Series(data,title='测试') #series对象
chart.appen(seriesobj) #series添加到chart中
ws.add_chart(chart,'A6') #chart添加到sheet中

 

  • 20
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值