自动操纵VSDX文件



我正在使用Visio 2013标准。我有Visual Studio 2008 Standard Edition。

这是我最后尝试做的:

更改,例如两种形状之间的连接器的名称,自动从Visio(例如TXT-或CSV-File(的外部给出一个名称。虽然,我需要一些基本的理解。

背景:

我(最好是(作为Visio的用户写这篇文章。我正在担任嵌入式软件开发人员。通常我与XML或VB包装无关。

我想让项目数据更容易理解。值和名称记录在门中。但是Visio到目前为止显示的名字。我想看到这些值保存在visio-diagramms上。

很容易从门上获得TXT-或CSV文件。但是到目前为止,我还没有找到将这些数据输入Visio的简单方法。

我考虑XML和软件包的原因:

我们在工作中获得的是Visio 2013标准(不是专业(。据我了解,Visio 2013 Professional正在提供此解决方案(请参阅描述的第一句。(,仅。

https://support.office.com/en-us/article/import-data-to-shapes-in-your-drawing-d174b3fd-3079-42fd-81e8-2bf8-2bf8dbf8d38bb03

我已经读过或试图理解:

https://msdn.microsoft.com/en-us/library/office/jj649391.aspx

https://msdn.microsoft.com/en-us/en-en/library/office/jj28622.aspx

因此,这是我尝试的第一步:

1(我用Visio绘制两个形状,将它们与连接器连接。连接器有一个名称,我肯定会在任何XML文件中找到。我保存了文件并将其关闭。

2(将文件的类型从.vsdx更改为.zip

3(解开文件夹

4(搜索连接器的名称,并在文件夹'page1'

中找到它

5(通过记事本 更改了连接的名称

6(再次解开文件夹

7(将类型从.zip更改为.vsdx

8(试图打开恢复的.vsdx文件,但失败了。Visio说它不能打开文件或组件,因为它已损坏。

这就是我想的:

问题在于XML文件与VSDX文件不同的事实:

  • 我猜想,必须将VSDX文件作为一个软件包(而不是XML文件(处理,我必须(!(使用Visual Studio,而不是通过Notepad 进行简单的更改。

  • 我想,如果使用Visual Studio,我将有一个优势来查找和处理这些对象。我想要更动态的操纵 - 因为viso -project的路径和文件架可能并不总是相同的。

  • 我想Visio内没有解决方案,Exept我会得到专业转换。

这些是我的问题:

  • 打开重新恢复的VSDX文件失败的原因是什么?

  • 是真的吗?

a(我必须使用Visual Studio吗?

b(如果不使用Visual Studio,会有什么缺点?

c(没有Visio 2013专业版,是否有可能从Visio内自动更改连接器名称?

d(如果拥有Visio 2013专业人员确实必须使用宏,这可能意味着我也需要了解OPC,XML和包装?

e(使用Visio 2013本身来解决我的任务,这是否真的需要Visio 2013专业版?

非常感谢!

而不是操纵原始内容,我将创建一个启用了VBA的Visio文件,该文件包含一个例程来搜索连接器的Visio文件,更改名称然后重新保存文件。您可以修改此例程以搜索多个文件或多个形状,也可以在形状主搜索以调整具有任何名称的连接器。

您还可以使用Visual Studio中的Visio Interop工具来创建与我上面VBA方法相同的应用程序。

这样做的优点是,如您所发现的那样,您避免挖掘具有破坏文件的真正潜力的原始数据。这也将使意外更改的可能性降低(例如,您要查找的名称价值可能会在XML的多个位置发生,而您可能只会更改错误的姓名(。

随着上述解释,以下是您问题的答案:

  1. 您不必使用Visual Studio
  2. 如果您有另一种方式,则不会使用视觉工作室这起作用(例如VBA(。主visio文件将更加便携,特别是在公司锁定的公司环境中新应用程序。
  3. 如上所示,即使您没有Visual Studio(例如通过VBA(
  4. 通过使用Visio Interop组件或Visio本身,您不使用需要知道XML等。
  5. 任何版本的Visio都可以使用,而不仅仅是专业版。

使用程序随附的工具使您想要更轻松,更安全的更改。

最新更新