2015-05-18 9 views
0

Я надеюсь, что есть способ, чтобы сохранить пользовательские данные из плагина Excel-ДНК в книгу ..Excel-ДНК сохранения пользовательских данных в таблицу (не клетки)

то пользователь должен ввести в из пользовательская форма Excel-DNA.

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

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

Джеймс

ответ

2

Вы можете сделать это с помощью Workbook.CustomXMLParts: см
Custom XML Parts Overview

+0

Благодаря Чарльз работал лакомство! – James

1

Для тех, кто заинтересован, следующие работал с кнопки ленты Excel-ДНК:

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

Джеймс