AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2016, 14:15   #1  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
XMLExcelDocument_RU вставка значения построчно. Ax2012
Добрый день всем.
Реализую выгрузку в Excel на большой объём данных(более 50 тыщ строк)
Использую класс XMLExcelDocument_RU. Выгрузка через него происходит молнейностно в сравнении с ComExcelDocument_RU. Но на больших данных скорость падает экспоненциально(до часа и более). Решил оптимизировать выгрузку заполняя отчёт не по ячейкам а по строчно. И никак у меня это не получается. Пробовал передавать и строку разделённую табуляцие, и передавал массив...так же указывал и правильный Range. Но всё равно в Excel-е пишет всё в одну колонку.
Кто нить сталкивался с данной проблемой, и как её решил?
Спасибо.

X++:
    XMLExcelDocument_RU                         excellDocument;
    OXMLWorksheet_RU                            worksheet;
    OXMLWorkbook_RU                             workbook;
    Bookmark                                    bookmark;
    int                                         rowNum,colNum,lineNo,countCol;
    Filename                                    newFileName;
    Filename                                    newPathFileName;
    Array                           arr = new Array(Types::String);
    str                             strVal;
    
    rowNum = 10;
    newFileName = WinAPI::getTempPath() + #reportSubFolder + "TestXLS.xlsx";
    
    excellDocument = XMLExcelDocument_RU::newFromFile(TemplateProvider_RU::getFor(_args).get(resourceStr(Resourse)), newFileName);

    strVal = num2char(9)+"qqq";
    strVal = strVal + num2char(9)+"333";
    strVal = strVal + num2char(9)+"rrrrrrrrr";
    strVal = strVal + num2char(9)+"23323";
    
    arr.value(colNum,"1111");
    colNum++;
    arr.value(colNum,"aaaaaa");
    colNum++;
    arr.value(colNum,"2222");
    colNum++;
    arr.value(colNum,"asdsasda");
    colNum++;
    
    
    workbook = excellDocument.workbook();
    worksheet = workbook.getWorksheet();
    
    bookmark = '';
    bookmark = ComExcelDocument_RU::numToNameCell(1,rowNum) +':'+ComExcelDocument_RU::numToNameCell(4,rowNum);
    bookmark = ComExcelDocument_RU::replaceWorksheetName(bookmark,worksheet.Name());
    worksheet.
    excellDocument.insertValue(bookmark, arr);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
модификация taxTrans_RU в пакетном режиме в классе GoodsInRouteUpdate_RU Владимир Максимов DAX: Программирование 0 13.08.2015 18:13
Макросы StartSafeCall_RU at5454 DAX: Программирование 3 24.04.2015 16:55
XMLExcelDocument_RU объединение ячеек и вставка картинки raniel DAX: Программирование 13 26.01.2015 14:45
Ax3 - Модуль Учет затрат egorych DAX: Функционал 15 12.12.2013 17:58
axforum blogs: Формат адресов. AddressMap_RU Blog bot DAX Blogs 0 08.02.2011 12:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:34.