目录
插入公式
插入时间
添加批注
设置超链接
插入图片
图表
插入公式
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 Commentsht1.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_letterr, 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, Referencechart = 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参数为图表左上角的起始位置