27.11.2014, 23:01 | #1 |
Участник
|
Вставка данных в 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 |
Участник
|
Нужно создать второй лист, вот рабочий код
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); void insertRows( int _fromRow, //начиная с какой строки int _toRow, //заканчивая какой строкой int _fromWorkSheet = 1, //с какого листа int _offset = 1, int _numOfCopies = 1, int _toWorkSheet = 1)[ //на какой лист |
|
28.11.2014, 14:44 | #3 |
Участник
|
Да все равно спасибо. Это не то, что именно я хотел. Наконец-то решил проблему. Просто нужно в xlsDocument.insertArray(bookmark, Global::convertCon2arrExtComVar(_con)) добавить значение 2 (второй лист). То есть: xlsDocument.insertArray(bookmark, Global::convertCon2arrExtComVar(_con), 2)
|
|