Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > запись текста в обьединенные ячейки Excel


Автор: Cheshuya 6.12.2006, 17:05
Здравствуйте ...
подскажите как записать текст в обьединенные ячейки Excel ипользуя серверы автоматизации .... желательно на Builder C++???

Код

long icid = LOCALE_SYSTEM_DEFAULT;
// открываю книгу ...
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(File.c_str(),icid));
//выбираю страницу
 ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item(1));    

......................
дальше на этой страниче в уже обьединенную ячейку нужно опустить значение....
как????????????????????????????

Спасибо....

Автор: mihanik 7.12.2006, 08:00
Хм...

Насколько я знаю, если "объединить" ячейки в экселе, то они на логическом уровне начинают рассматриваться, как одна ячейка.
Причём, адрес для этой ячейки-мутанта берётся от той ячейки, которая располагается в левом верхнем углу блока объединённых ячеек.
Т.е. если я объединю блок B2:C13, то адрес у этого блока будет B2...

Т.е. Если умеешь работать с одной ячейкой, то и с объединёнными ячейками тоже умеешь...

Или ты не умеешь подключаться к одной ячейке?

 smile 

Автор: Cheshuya 7.12.2006, 14:43
mihanik
Всё выше изложеное Вами верно на 100% в том числе и то что я неумею подключиться к одной ячейке...

Если не сложно то подскажи примерчиком (только с использованием сервера автоматизации TExcelWorksheet ... через OLE уже разобрался)....
Заранее благодарен...

Автор: mihanik 7.12.2006, 16:13
Эх...
помог бы...
только с Builder C++ не знаком...

Добавлено @ 16:14 
перенесу-ка тему из программирования связанного с офисом в раздел C++!!!

Автор: Cheshuya 8.12.2006, 15:27
Хочу уточнить проблемму 

Код

// открываю книгу 
ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->Add(File.c_str(),icid)); 
//выбираю страницу 
ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Worksheets->get_Item(1)); 
//выбираю ренч и пытаюсь в него что нибудь послать 
ExcelWorksheet1->Get_Range(TVariant("R8"),TVariant(EmptyParam))->set_Value(TVariant("test"));


на методе set_Value() error: 
[C++ Error] utilcls.h(2334): E2031 Cannot cast from 'const TBaseVariantT<tagVARIANT>' to 'TVariant &' 

Заранее спасибо..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)