Показать сообщение отдельно
Старый 07.03.2013, 16:30   #18  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Есть какой-то способ вставки в range массива, как это было возможно с COM?
Вот пример для COM, он работает:
X++:
ComExcelDocument_RU         comExcel;
    ArrayExtend_RU              arrayStr = new ArrayExtend_RU(Types::String, 10);
    ;
    comExcel = new ComExcelDocument_RU();
    comExcel.newFile("", false);
    
    arrayStr = new ArrayExtend_RU(Types::String, 2);
    arrayStr.value(1, "AAA");
    arrayStr.value(2, "БББ");
    
    comExcel.insertValue("A1:B1", arrayStr);
    
    comExcel.visible(true);
А для .NET не работает:
X++:
SysExcelApplication_NET     sysExcelApplication;
    SysExcelWorksheet_NET       sysExcelWorksheet;
    SysExcelRange_NET           range;
    ArrayExtend_RU              arrayStr = new ArrayExtend_RU(Types::String, 10);
    ;
    sysExcelApplication = SysExcelApplication_NET::construct();
    sysExcelApplication.workbooks().add("");
    sysExcelWorksheet = sysExcelApplication.worksheets().itemFromNum(1);
    arrayStr = new ArrayExtend_RU(Types::String, 2);
    arrayStr.value(1, "AAA");
    arrayStr.value(2, "БББ");
    range = sysExcelWorksheet.range("A1:B1");

    range.value2(arrayStr);

    sysExcelApplication.visible(true);
Пытался различными способами передать массив, прямая передача или упаковка через CLRInterop::getObjectForAnyType(arrayStr ) выдает ошибку о невозможности преобразования.