Excel-DNA保存自定义数据到工作表(不是单元格)

本文关键字:单元格 工作 保存 自定义 数据 Excel-DNA | 更新日期: 2023-09-27 17:49:40

我希望有一种方法可以将Excel-DNA插件中的自定义数据保存到工作簿中。

用户从自定义Excel-DNA表单中输入的内容。

我意识到这可以保存到单元格中,但我不希望用户看到或更改数据..

是否有一种方法可以将自定义XML文件附加到工作簿,或添加隐藏的工作表?

詹姆斯

Excel-DNA保存自定义数据到工作表(不是单元格)

您可以使用工作簿进行此操作。CustomXMLParts:参见
自定义XML部件概述

对于那些感兴趣的人,下面的工作来自Excel-DNA功能区按钮:

Microsoft.Office.Interop.Excel.Application excelApp = (Microsoft.Office.Interop.Excel.Application)ExcelDnaUtil.Application;
Microsoft.Office.Interop.Excel.Workbook workbook = excelApp.ActiveWorkbook;
System.Collections.IEnumerator enumerator = workbook.CustomXMLParts.SelectByNamespace("http://schemas.microsoft.com/vsto/samplestest").GetEnumerator();
enumerator.Reset();

if (!(enumerator.MoveNext())) {
  string xmlString1 = "<?xml version='"1.0'" encoding='"utf-8'" ?>" +
    "<employees xmlns='"http://schemas.microsoft.com/vsto/samplestest'">" +
    "<employee>" +
    "<name>Surender GGG</name>" +
    "<hireDate>1999-04-01</hireDate>" +
    "<title>Manager</title>" +
    "</employee>" +
    "</employees>";

  Office.CustomXMLPart employeeXMLPart = workbook.CustomXMLParts.Add(xmlString1);
} else {
  Office.CustomXMLPart a = (Office.CustomXMLPart)enumerator.Current;
  a.NamespaceManager.AddNamespace("x", "http://schemas.microsoft.com/vsto/samplestest");
           MessageBox.Show(a.SelectSingleNode("/x:employees/x:employee/x:name").Text);
  MessageBox.Show(a.XML);
}

第一次添加xml文档,第二次检索它。你可以保存工作簿& &;重新打开以确认是否存在。

詹姆斯