用于创建和管理 Visio 图表的免费 Python 库
用于生成、修改和操作 Visio VSDX 图表的开源 Visio Python 库。它支持样式、格式和转换为其他文件格式。
在当今数据驱动的世界中,有效可视化复杂信息对于传达见解和做出明智决策至关重要。Microsoft Visio 是一种广泛使用的图表工具,在创建图表、流程图和组织结构图方面发挥着至关重要的作用。为了充分利用 Python 生态系统中 Visio 文件的潜力,“vsdx”Python 库应运而生,成为一个强大的工具。这个库弥补了使用 Visio 图表的便利性和 Python 脚本功能的强大性之间的差距。
“vsdx”库是一个高级 Python 模块,旨在提供一个无需 Microsoft Visio 本身即可读取和编辑 Visio 文件(VSDX 格式)的界面。它提供了一个直观的界面,可以通过编程方式创建、修改和分析 Visio 图表。对于想要自动执行涉及 Visio 文件的任务或将图表创建集成到其应用程序中的开发人员来说,此功能至关重要。该库有几个重要功能,例如从头开始创建新图表、修改现有图表、控制图表布局、将数据与图表集成、将 Visio 图表转换为其他受支持的文件格式、图表验证等等。
“vsdx”库是开源的,非常容易处理。该库为 Microsoft Visio 文件带来了编程操作的强大功能,使软件开发人员能够无缝地自动执行任务、集成数据和生成动态图表。其直观的界面和广泛的功能集使其成为那些希望利用 Python 进行高效 Visio 文件操作的人的游戏规则改变者。无论您是创建复杂的业务流程图还是简单的流程图,VSDX 库都是您工具库中一个有价值的工具。
开始使用 vsdx
推荐使用 pypi 来安装 vsdx 库。请使用以下命令顺利安装。
通过 pypi 安装 vsdx 库
pip install vsdx
通过 Python API 创建和编辑 Visio 图表
开源 vsdx 库已完全支持在自己的 Python 应用程序中从头开始生成新的 Visio 图表。软件开发人员可以添加新形状并应用各种样式(如颜色、字体和线型),以增强图表的视觉吸引力。此外,软件开发人员可以以编程方式修改现有图表。这包括添加或删除形状、更改其属性(大小、颜色、位置)以及更新文本标签。此功能支持根据变化的数据动态生成 M 图表。
通过 Python API 从模板创建新的 vsdx 文件
from vsdx import VisioFile
filename = 'my_template_file.vsdx' # file containing jinja code
context = {'value1': 10, 'list_value': [1,2,3]} # data for the template
with VisioFile('my_template_file.vsdx') as vis:
vis.jinja_render_vsdx(context=context)
vis.save_vsdx('my_new_file.vsdx')
通过 Python 导出和转换 Visio 图表
开源 vsdx 库允许软件开发人员在自己的 Python 应用程序中仅用几行代码即可将 Visio 图表转换为其他受支持的文件格式。该库支持将图表导出为各种格式,例如 PNG、SVG 或 PDF。这对于跨不同平台共享图表并将其集成到报告或演示文稿中非常有用。
通过 Python API 读取、编辑和提取 Visio 文件中的信息
开源 vsdx 库使软件开发人员能够轻松地在 Python 应用程序内加载和读取 Visio 文件中的信息。该库允许软件开发人员解析和提取现有 Visio 文件中的信息。此功能对于分析图表、提取数据或根据文件内容生成报告非常有用。以下示例演示了如何读取 Visio 文件、查找具有特定文本的形状、将其删除,然后保存更新的 .vsdx 文件。
如何读取、查找具有特定文本的形状、修改它以及保存 .vsdx 文件?
from vsdx import VisioFile
filename = 'my_file.vsdx'
# open a visio file
with VisioFile(filename) as vis:
# get page shapes collection
shapes = vis.pages[0]._shapes
# get shape to remove by its text value
s = shapes[0].find_shape_by_text('Shape to remove') # type: VisioFile.Shape
# remove the shape if found
if s:
s.remove()
# save a new copy
vis.save_vsdx('shape_removed.vsdx')