Excel中批量绘制迷你折线图
评论
收藏

Excel中批量绘制迷你折线图

经验分享
鲁小智校长
2026-04-02 14:11·浏览量:108
鲁小智校长
影刀高级开发者
发布于 2026-04-02 14:09更新于 2026-04-02 14:11108浏览

今日工作需求,如何在指定页中批量插入迷你图,代码如下:

代码参考:https://www.cnblogs.com/Yesi/p/19064089

from spire.xls import *
from spire.xls.common import *

def add_mini_line_charts_with_spire(xlsx_path, sheet_name="销量明细"):
    """
    使用Spire.XLS在Excel文件的指定工作表中,为Y列到AH列的数据在AI列批量嵌入迷你折线图
    """
    # 创建工作簿对象
    workbook = Workbook()
    
    # 加载Excel文件
    workbook.LoadFromFile(xlsx_path)
    
    # 获取指定工作表
    worksheet = workbook.Worksheets[sheet_name]
    
    # 获取最大行数
##    max_row = worksheet.LastRow
    max_row = 20
    
    # 遍历每一行,为每行数据创建迷你折线图
    for row in range(2, max_row + 1):  # 从第2行开始,跳过表头
        # 添加折线迷你图组
        sparkline_group1 = worksheet.SparklineGroups.AddGroup()
        sparkline_group1.SparklineType = SparklineType.Line
        
        # 添加迷你图到图组
        sparklines1 = sparkline_group1.Add()

        # 设置数据范围(Y到AH列)
        sparklines1.Add(worksheet.Range[f"Y{row}:AH{row}"], worksheet.Range[f'AI{row}'])
        
        
        # 设置迷你图样式
        sparkline_group1.SparklineColor = Color.get_Orange()  # 橘色
        sparkline_group1.ShowHighPoint = True  # 最高点
        sparkline_group1.ShowLowPoint = True  # 最低点
        
        # 调整迷你图大小以适配单元格
        worksheet.Range[f'AI{row}'].ColumnWidth = 15
        worksheet.Range[f'AI{row}'].RowHeight = 20
    
    # 保存到原文件
    workbook.SaveToFile(xlsx_path, ExcelVersion.Version2016)
    workbook.Dispose()
    
    print(f"迷你折线图已批量嵌入到AI列: {xlsx_path}")

if __name__ == "__main__":
    xlsx_file = "SKU销量_近10天数据.xlsx"
    add_mini_line_charts_with_spire(xlsx_file, "销量明细")

效果图如下:

又解决一个小问题 一键三连

收藏1
全部评论1
最新
发布评论
评论