Excel-DNA сохраняет пользовательские данные на листе (не в ячейках)

Я надеюсь, что есть способ сохранить пользовательские данные из плагина Excel-DNA в книгу.

Что-то, что пользователь мог бы ввести из пользовательской формы Excel-DNA.

Я понимаю, что это можно сохранить в ячейках, но я не хочу, чтобы пользователь видел или изменял данные.

Есть ли способ присоединения пользовательского XML-файла к книге или добавления скрытого листа?

Джеймс


person James    schedule 18.05.2015    source источник


Ответы (2)



Для тех, кто заинтересован, следующее работало с помощью кнопки ленты 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-документ, второй раз извлекает его. Вы можете сохранить книгу и снова открыть ее, чтобы убедиться, что она сохраняется.

Джеймс

person James    schedule 19.05.2015