Показать сообщение отдельно
Старый 22.05.2012, 16:59   #3  
alexbn is offline
alexbn
Участник
 
46 / 11 (1) +
Регистрация: 23.04.2004
конкретнее OpenXml

Код:
   str                                                     relId;
    System.Exception                                        ex;
    DocumentFormat.OpenXml.Packaging.SpreadsheetDocument    package;
    DocumentFormat.OpenXml.Packaging.WorkbookPart           workbookPart;
    DocumentFormat.OpenXml.Packaging.WorksheetPart          worksheetPart;
    DocumentFormat.OpenXml.Spreadsheet.Worksheet            worksheet;
...........
;

    new InteropPermission(InteropKind::ComInterop).assert();

    try
    {

        package  = DocumentFormat.OpenXml.Packaging.SpreadsheetDocument::Create("c:\\test.xlsx", DocumentFormat.OpenXml.SpreadsheetDocumentType::Workbook);
        workbookPart    = package.AddWorkbookPart();
        worksheetPart   = workbookPart.AddNewPart();
// в реале надо 
// worksheetPart   = workbookPart.AddNewPart<worksheetPart>();
// либо 
// worksheetPart   = workbookPart.AddNewPart(of worksheetPart)();
// а так валится с руганью в сторону позднего связывания (логично)
} 

    }
    catch (Exception::CLRError)
    {
        ex = CLRInterop::getLastException();
        package.Close();
        info(ex.get_Message() );
    }
CodeAccessPermission::revertAssert();