CustomXmlParts in Excel

本文关键字:Excel in CustomXmlParts | 更新日期: 2023-09-27 18:31:20

我在Excel中编写了一个加载项。我正在单击功能区中的按钮添加自定义XmlPart。添加自定义XmlPart时,我将其GUID保存在单独的工作表(XML)中,以便以后检索XML。

这是代码:

    private void btnAddXML_Click(object sender, RibbonControlEventArgs e)
    {
        Excel.Workbook WB = Globals.ThisAddIn.Application.ActiveWorkbook;
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(@"C:'Users'shree'Desktop'Correct.xml");
        Microsoft.Office.Core.CustomXMLPart TaggingXml = WB.CustomXMLParts.Add(xmlDoc.OuterXml);
        string strXmlGUID = TaggingXml.Id;
        Excel.Worksheet WS = WB.Sheets.Add(After: WB.Sheets[WB.Sheets.Count]);
        WS.Name = "XML";
        WS.Cells[1, 1] = strXmlGUID;
    }
    private void btnShowXML_Click(object sender, RibbonControlEventArgs e)
    {
        Excel.Workbook WB = Globals.ThisAddIn.Application.ActiveWorkbook;
        Excel.Worksheet WS = WB.Sheets["XML"];
        XmlDocument xmlDoc = new XmlDocument();
        Microsoft.Office.Core.CustomXMLPart TaggingXml = WB.CustomXMLParts.SelectByID(WS.Cells[1, 1].Value.ToString());
        StreamWriter sw = File.CreateText(@"C:'Users'shree'Desktop'New.xml");
        sw.Write(TaggingXml.XML);
        sw.Close();
        sw.Dispose();
        MessageBox.Show("Done");
    }

现在我的问题是如何在 excel 中查看此 xml 文档(如果可能)。如果我将此文件移动到另一个系统,我是否能够访问此 xml,或者它存储在我的本地系统中。如果我用于读取 xml 的 GUID 与其他机器中某个其他对象的 GUID 冲突怎么办。CustomXmlPart 如何工作?存储在哪里?

CustomXmlParts in Excel

对于任何阅读的人来说,你都可以。右键单击 excel 文件并使用压缩软件(如 winrar 或 zip)打开。

  1. 您无法在 Excel 本身中查看此信息。您可以使用 VSTO 创建一个简单的自定义 XMLPart 查看器应用程序。
  2. CustomXMLPart 存储在 Excel 文件本身中。这意味着,当您复制 Excel 工作簿或在其他位置打开它时,自定义 XML 驻留在该工作簿中。