python-读写Excel:openpyxl-(2)图片、图表、批注、超链接、公式

目录

插入公式

插入时间

添加批注

设置超链接

插入图片

图表


插入公式

sht1.cell(2, 10).value = '=SUM(L1:L39)'

插入时间

sht1.cell(4, 4).value = datetime.datetime(2020, 2, 23, 10, 20, 00)
print(sht1.cell(4, 4).value)

添加批注

from openpyxl.comments import Comment

sht1.cell(2, 10).comment = Comment(text='测试添加批内容', author='批注人信息', height=90, width=150)

设置超链接

sht1.cell(2, 8).value = '点击后跳转'
sht1.cell(2, 8).hyperlink = r'C:\Users\Administrator\Desktop\testfile'  # 链接可以是文件路径或网址
sht1.cell(2, 8).hyperlink.tooltip = '超链接测试'  # 鼠标移动到超链接上时的提示信息

插入图片

from openpyxl.drawing.image import Image
from openpyxl.utils import get_column_letter

r, c = 5, 10  # 指定行列序号
col = get_column_letter(c)  # 获取列对应的字母
w, h = sht1.column_dimensions[f'{col}'].width, sht1.row_dimensions[r].height  # 获取单元格的列宽和行高
img = Image(r'C:\Users\Administrator\Desktop\testfile\测试图片\IMG_20230207_102219.jpg')
img.width, img.height = w * 8, h * 96 / 72  # 亲测按照这个比例可填充单元格

# img.ref = r'C:\Users\Administrator\Desktop\testfile\Photos\1.jpg'   # ref属性可修改目标图标位置,即替换上面Image中的图片

# 设置添加图片并设置图片位置方法1:
sht1.add_image(img, anchor=f'{col}{r}')  # anchor表示要插入图片的对应单元格位置,字母和数字构成,如C3
# 设置添加图片并设置图片位置方法2:
# coordinate = sht1.cell(r, c).coordinate  # coordinate可获取单元格字母坐标
# sht1.add_image(img, anchor=f'{coordinate}')  # anchor表示要插入图片的对应单元格位置,字母和数字构成,如C3

图表

Reference用于创建一个引用对象,该对象指向excel表格中特定区域的数据。

openpyxl可在exel中绘制的图表:面积图(AreaChart)、条形图/柱形图(BarChart)、气泡图(BubbleChart)、折线图(LineChart)、散点图(ScatterChart)、饼图(PieChart)、甜甜圈图(Donut Chart)、雷达图(Radar Chart)、股票图(Stock Chart)、曲面图(Surface Chart)

from openpyxl.chart import LineChart, Reference

chart = LineChart()  # 创建图表类型对象,此处以折线图为例
chart.title = '销售图表数据'  # 设置图表标题
chart.y_axis.title = '销售量(万元)'  # 添加Y轴标题
chart.x_axis.title = '销售时间(月)'  # 添加X轴标题

data_source = Reference(worksheet=sht1, min_row=1, min_col=1, max_row=14, max_col=10)  # 设置图表数据来源和数据统计范围
chart.add_data(data_source, from_rows=True,
               titles_from_data=True)  # 添加图表数据及设置系列名称来源(from_rows行或列,默认FALSE,取列值),给柱状图添加数据,数据源中有系列名称,系列名称来自行,第一行为系列名称
categories = Reference(worksheet=sht1, min_row=1, min_col=1, max_row=1, max_col=7)
chart.set_categories(categories)  # 设置x轴的范围,横轴坐标取值
sht1.add_chart(chart, anchor="B6")  # 将图表添加到对应工作表的指定单元格中,anchor参数为图表左上角的起始位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值