肿圬后 发表于 7 天前

Python Excel 高阶教程:使用 Spire.XLS 插入、修改和删除迷你图

在日常工作中,你是否遇到过这些情况:需要分析图表背后的原始数据却无从下手?图表尺寸不合适遮挡了重要信息?图表位置不合理影响报告布局?
在 Excel 中,迷你图是一种紧凑而高效的图表类型,它通常嵌入在单元格内,用于快速直观地展示数据趋势。这种图表非常适合用于显示单元格区域中的数据变化,尤其在处理大量数据时,能够帮助我们轻松识别模式和趋势。本文将详细介绍如何使用 Spire.XLS for Python 在 Excel 中插入、修改和删除迷你图。
插入迷你图

假设你现在有一个工作簿,其中某个工作表需要你绘制图表来描述数据的趋势。然而,你发现该工作表数据量庞大,组织结构复杂,直接添加常规图表可能会导致工作簿布局混乱。 此时,迷你图便成为了一个理想的替代方案,它占用空间小,同时能清晰地显示数据趋势。
迷你图是 Excel 中一种独特的图表类型,因为它不像其他图表那样可能占用多个单元格区域,而是仅占用一个单元格,特别适合在可用空间不足时使用。
Spire.XLS for Python 支持向 Excel 工作表中插入三种迷你图:

[*]折线迷你图:显示数据随时间的变化趋势,适用于展示连续数据的变化。
[*]柱形迷你图:以竖条的形式展示数据,适合用于比较一系列数值之间的大小。
[*]盈亏迷你图:用于展示二进制结果(如盈亏、胜负等),通常只有两个值(正值或负值)会显示为相同的颜色。
关键步骤如下:

[*]创建 Workbook 类的对象并使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
[*]使用 Workbook.Worksheets 属性获取特定工作表。
[*]使用 Worksheet.SparklineGroups.AddGroup() 方法给工作表添加一个迷你图组。
[*]使用 SparklineGroup.SparklineType、SparklineGroup.SparklineColor 和 SparklineGroup.HighPointColor 属性指定迷你图组中迷你图的类型、颜色和最高点的颜色。
[*]使用 SparklineGroup.Add() 方法添加一个迷你图集合,然后使用 SparklineCollection.Add() 方法添加迷你图到迷你图集合。
[*]使用 Workbook.SaveToFile() 方法保存结果文档。
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
workbook = Workbook()
# 加载一个Excel文件
workbook.LoadFromFile("Microsoft Excel 工作簿.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets

# 添加折线迷你图组
sparkline_group1 = sheet.SparklineGroups.AddGroup()
sparkline_group1.SparklineType = SparklineType.Line
# 设置迷你图组的颜色
sparkline_group1.SparklineColor = Color.get_Orange()
# 设置迷你图组最高点的颜色
sparkline_group1.HighPointColor = Color.get_Red()
# 添加迷你图到图组
sparklines1 = sparkline_group1.Add()
sparklines1.Add(sheet.Range["B3:M3"], sheet.Range["N3"])

# 添加柱形迷你图组
sparkline_group2 = sheet.SparklineGroups.AddGroup()
sparkline_group2.SparklineType = SparklineType.Column
# 设置迷你图组的颜色
sparkline_group2.SparklineColor = Color.get_BlueViolet()
# 设置迷你图组最高点的颜色
sparkline_group2.HighPointColor = Color.get_Red()
# 添加迷你图到图组
sparklines2 = sparkline_group2.Add()
sparklines2.Add(sheet.Range["B4:M4"], sheet.Range["N4"])

# 添加盈亏迷你图组
sparkline_group3 = sheet.SparklineGroups.AddGroup()
sparkline_group3.SparklineType = SparklineType.Stacked
# 设置迷你图组的颜色
sparkline_group3.SparklineColor = Color.get_DarkBlue()
# 设置迷你图组最高点的颜色
sparkline_group3.HighPointColor = Color.get_Red()
# 添加迷你图到图组
sparklines3 = sparkline_group3.Add()
sparklines3.Add(sheet.Range["B5:M5"], sheet.Range["N5"])

# 保存文档
workbook.SaveToFile("添加迷你图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()上述代码在现有工作表的 N3:N5 区间内添加了3个迷你图,分别是折线迷你图、柱形迷你图和盈亏迷你图,并分别为它们设置了样式。

(在 Excel 表格中插入迷你图)
修改迷你图

仅仅插入迷你图还不足以完全反映数据的真实情况。你可能需要修改其样式、颜色或数据源,以使其准确显示你所需的信息。
Python 提供了 SparklineGroup、SparklineType 属性,让你可以在 Python 环境下轻松修改 Excel 工作表中迷你图的类型和数据源。
关键步骤如下:

[*]创建 Workbook 类的对象并使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
[*]使用 Workbook.Worksheets 属性获取特定工作表。
[*]使用 Worksheet.SparklineGroups 属性获取工作表中特定的迷你图组。
[*]使用 SparklineGroup.SparklineType 属性修改迷你图组中迷你图的类型。
[*]获取迷你图组中第一个迷你图的集合并使用 ISparklines.RefreshRanges() 方法修改迷你图集合的数据源。
[*]使用 Workbook.SaveToFile() 方法保存结果文档。
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
workbook = Workbook()
# 加载一个Excel文件
workbook.LoadFromFile("添加迷你图.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets

# 修改第一个迷你图组中迷你图的类型和数据范围
sparklineGroup = sheet.SparklineGroups
sparklineGroup.SparklineType = SparklineType.Column
sparklines = sparklineGroup
sparklines.RefreshRanges(sheet.Range["B3:G3"], sheet.Range["N3"])

# 保存结果文档
workbook.SaveToFile("修改迷你图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()上述代码成功将N3单元格的折线迷你图修改为了柱形迷你图,同时没有影响到其他的任何单元格。

(通过 Python 在 Excel 中修改迷你图)
删除迷你图

有时,为了简化报表或重新组织数据,你可能需要删除 Excel 工作表中的迷你图。
Spire.XLS for Python 提供了 **Remove()**方法来删除单个迷你图或整个迷你图组。
关键步骤如下:

[*]创建 Workbook 类的对象并使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
[*]使用 Workbook.Worksheets 属性获取特定工作表。
[*]使用 Worksheet.SparklineGroups 属性获取工作表中特定的迷你图组。
[*]使用 Worksheet.SparklineGroups.Remove() 方法删除该迷你图组。或者获取迷你图组中第一个迷你图的集合并删除集合中的第一个迷你图。
[*]使用 Workbook.SaveToFile() 方法保存结果文档。
from spire.xls import *
from spire.xls.common import *

# 创建Workbook对象
workbook = Workbook()
# 加载一个Excel文件
workbook.LoadFromFile("添加迷你图.xlsx")

# 获取第一个工作表
sheet = workbook.Worksheets

# 获取第一个迷你图组
sparklineGroup = sheet.SparklineGroups

# 删除第一个迷你图组中的第一个迷你图
sparklines = sparklineGroup
sparklines.Remove(sparklines)

# 保存结果文档
workbook.SaveToFile("删除迷你图.xlsx", ExcelVersion.Version2016)
workbook.Dispose()上述代码将可以把工作表内的第一个迷你图删除,不影响它引用的数据源或其他迷你图。
结语

本文详细介绍了如何使用 Spire.XLS for Python 在 Excel 中进行迷你图的插入、修改和删除操作。通过这些功能,你可以更灵活地处理和展示数据,提升数据分析报告的专业性和可读性。
迷你图作为一种轻量级的数据可视化工具,在有限的空间内提供了强大的趋势洞察力,是 Excel 报表制作中不可或缺的一部分。
希望本文能帮助你更好地利用 Spire.XLS for Python,高效地完成日常的 Excel 数据处理任务。

来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
页: [1]
查看完整版本: Python Excel 高阶教程:使用 Spire.XLS 插入、修改和删除迷你图