|
|
#1 |
|
Участник
|
ComExcelDocument_RU доработка и вопрос
1. доработка =)
X++: comRange = excel.findRange(ComExcelDocument_RU::numToNameCell(1, 1) + ":" +
ComExcelDocument_RU::numToNameCell(3, 10), 1);X++: szRet += int2str(_iRow); X++: if (_iRow != 0)
szRet += int2str(_iRow);2. вопрос: использовал конструкцию выше и группировку (линейка для сворачивания\разворачивания) X++: comRange = excel.findRange(ComExcelDocument_RU::numToNameCell(1, 1) + ":" + ComExcelDocument_RU::numToNameCell(3, 10), 1); comRange.Group(); |
|
|
|
|
#2 |
|
Ищущий знания...
|
в свое время делал группировку строк, и сворачивал вот так:
X++: void groupRows() { COM cmdBars, cmdBar, ctrls, ctrl; ; cmdBars = excel.CommandBars(); cmdBar = cmdBars.Item('PivotTable'); ctrls = cmdBar.Controls(); ctrl = ctrls.Item( 5 ); ctrl.Execute(); } P.S. естественно выполняется это на выделенном диапозоне (range.select), который был сгруппирован.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 20.06.2012 в 15:06. |
|
|
|
|
#3 |
|
Moderator
|
Цитата:
Помогите сделать действие в Excel через COM - здесь ищутся пути решения |
|
|
|
| За это сообщение автора поблагодарили: Player1 (1). | |
|
|
#4 |
|
Участник
|
Цитата:
Сообщение от Gustav
Выгрузка данных в Excel и их группировка... - здесь говорится о проблеме выполнения такого действия "в лоб"
Помогите сделать действие в Excel через COM - здесь ищутся пути решения Сталкнулся со всеми траблами которые возникали у kashperuk. Региональные настройки - понял что мне нужно писать команды по-русски. Код работает в job и не работает в class - да именно так. Не стал бы заморачиваться, но отчет реально гигантский и архиважный). Быть может найдете время рассмотреть мою ситуацию X++: COMExcelDocument_RU excel;
Com comRange, document, workSheets, exAppl, worksheet1;
;
excel = new COMExcelDocument_RU();
excel.newFile('', true);
document = excel.getComDocument();
workSheets = document.worksheets();
exAppl = document.Application();
workSheet1 = workSheets.item(1);
//группировка колонок
comRange = excel.findRange(ComExcelDocument_RU::numToNameCell(5, 0) + ":" +
ComExcelDocument_RU::numToNameCell(10, 0), 1);
comRange.Group();X++: .ExecuteExcel4Macro(strfmt('ПОКАЗАТЬ.ДЕТАЛИ(... |
|
|
|
|
#5 |
|
Участник
|
|
|
|
|
|
#6 |
|
Moderator
|
Цитата:
Сообщение от Player1
Всё прочитал, весь день пробовал, так ничиго и не вышло.
Сталкнулся со всеми траблами которые возникали у kashperuk. Региональные настройки - понял что мне нужно писать команды по-русски. Код работает в job и не работает в class - да именно так. Не стал бы заморачиваться, но отчет реально гигантский и архиважный). Быть может найдете время рассмотреть мою ситуацию |
|
|
|
|
#7 |
|
Участник
|
Попробовал, со строками все получается, а с колонками (интерпретировал код под свои переменные):
X++: COMExcelDocument_RU excel;
document = excel.getComDocument();
workSheets = document.worksheets();
exAppl = document.Application();
workSheet1 = workSheets.item(1);
com Columns, currColumns;
;
columns = workSheet1.columns();
currColumns = COM::createFromVariant(columns.Item('A:C'));
currColumns.Select();
currColumns.Group();
cmdBars = exAppl.CommandBars();
cmdBar = cmdBars.Item('PivotTable');
ctrls = cmdBar.Controls();
ctrl = ctrls.Item( 5 );
ctrl.Execute(); |
|
|
|
|
#8 |
|
Moderator
|
Цитата:
X++: {
COMExcelDocument_RU excel = new COMExcelDocument_RU();
COM document;
COM workSheets;
COM exAppl;
COM workSheet1;
COM columns, currColumns, rng;
COM cmdBars, cmdBar, ctrls, ctrl;
;
excel.newFile('', true);
document = excel.getComDocument();
workSheets = document.worksheets();
exAppl = document.Application();
workSheet1 = workSheets.item(1);
columns = workSheet1.columns();
currColumns = COM::createFromVariant(columns.Item('A:C'));
currColumns.Select();
currColumns.Group();
cmdBars = exAppl.CommandBars();
cmdBar = cmdBars.Item('PivotTable');
ctrls = cmdBar.Controls();
ctrl = ctrls.Item( 5 );
ctrl.Execute();
rng = exAppl.Range('A1:AC10');
rng.Value2('bla-bla-bla');
} |
|
|
|
|
#9 |
|
Участник
|
В джобе да, в классе нет.
Ура! это натолкнуло меня на мысль что дальнейший код, после группировки, портит ее. Так и есть, вставил группировку в конце метода - работает. Ну только остался эффект того что все колонки отчета выделены после вывода его на экран, ну да ладно. |
|
|
|
|
#10 |
|
Moderator
|
|
|
|
|
| За это сообщение автора поблагодарили: NoTimeToCry (1). | |