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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.11.2014, 23:01   #1  
Arnopad is offline
Arnopad
Участник
 
7 / 10 (1) +
Регистрация: 06.09.2014
? Вставка данных в Excel в определенный лист с помощью xlsDocument.insertRows()
Доброго времени суток!

Никак не могу вставить данные в Excel на второй лист.
На форуме нашел функцию вставки xlsDocument.insertValue(..., 2). Но меня интересует другое. Вот никак не смогу вставить на второй лист с помощью xlsDocument.insertRows(..,..,..,..,..,..), хотя xlsDocument.findRange(#LineText, 2) это читает. По умолчанию данные отображаются только на первом листе екселя. Как заставить, чтобы отобразились на 2-ом листе? Может я что-то упустил? Вот например есть часть кода из класса :
X++:
private client static void show(container  _con, int _rows)
{	
   ComExcelDocument_RU     xlsDocument = new ComExcelDocument_RU();
    COM                     comRange;
    Bookmark                bookmark;
    int                     i;
    int                     firstColumn, firstRow, endColumn, endRow, columns;
    #define.LineText('Line')
    #define.RowCount(2)
    ;
    xlsDocument = new ComExcelDocument_RU();
    xlsDocument.newFile(ClassExample::fullTemplateName(), false, -1);

    comRange    = xlsDocument.findRange(#LineText, 2); 
    columns     = conlen(_con) / _rows;
    firstColumn = comRange.column();
    firstRow    = comRange._row();
    endColumn   = firstColumn + columns - 1;
    endRow      = firstRow + _rows;

    xlsDocument.insertRows(firstRow, firstRow, 2, 1, _rows - #RowCount + 1, 2);
    bookmark = ComExcelDocument_RU::numToNameCell2(firstColumn, firstRow, endColumn, endRow);
    xlsDocument.insertArray(bookmark, Global::convertCon2arrExtComVar(_con));
	xlsDocument.visible(true);
    xlsDocument.finalize();
}

#define.text1("New")
#define.text2("Year")
#define.text3("2015")
public void run()
{
    container       contd;
    counter         k;
    int             j;
    ;
    for(j = 0; j < 10; j++)
    {
		k++;
		contd += strfmt("%1", #text1);
		contd += strfmt("%1", #text2);
		contd += strfmt("%1", #text3);
    }
    ClassExample::show(contd, k);
}
Старый 28.11.2014, 06:26   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Нужно создать второй лист, вот рабочий код
X++:
    excel = new COMExcelDocument_RU();
    excel.newFile('', true);          
    excel.visible(true);
    document = excel.getComDocument();
    workSheets = document.worksheets();
    workSheets.add();
    exAppl = document.Application();
    workSheet1 = workSheets.item(1);
    workSheet1.name('111');

    excel.insertValue2(COMExcelDocument_RU::numToNameCell(1,1),'dfdfdf');
    excel.insertValue2(COMExcelDocument_RU::numToNameCell(1,2),'sasasasa');
    excel.insertRows(1,1,1,1,1,2);
Если провалиться в метод InsertRows(), то можно понять что делается и что нужно передавать в него:
void insertRows(
int _fromRow, //начиная с какой строки
int _toRow, //заканчивая какой строкой
int _fromWorkSheet = 1, //с какого листа
int _offset = 1,
int _numOfCopies = 1,
int _toWorkSheet = 1)[ //на какой лист
Старый 28.11.2014, 14:44   #3  
Arnopad is offline
Arnopad
Участник
 
7 / 10 (1) +
Регистрация: 06.09.2014
Да все равно спасибо. Это не то, что именно я хотел. Наконец-то решил проблему. Просто нужно в xlsDocument.insertArray(bookmark, Global::convertCon2arrExtComVar(_con)) добавить значение 2 (второй лист). То есть: xlsDocument.insertArray(bookmark, Global::convertCon2arrExtComVar(_con), 2)
Теги
excel, worksheet

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Как перейти на другой лист Excel smailik DAX: Программирование 4 18.04.2012 15:59
Новый лист в Excel JuniorAx DAX: Программирование 6 27.09.2011 16:38
Проблема некорректного вывода данных в EXCEL Dark Light DAX: Программирование 4 30.06.2009 14:43
Быстрый способ вывода данных в Excel с картинками Zlojbarsuk DAX: Программирование 10 23.10.2008 20:13

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

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

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