IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> С++ Builder6 & Excel
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Здравствуйте!

Подскажите пожалуйста, можно ли содержимое компонента-таблицы StringGrid экспортировать в документ Excel?
Если да, то как это делается?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Вот основа кода:
bool Xls_To_StringGrid(TStringGrid *AGrid, String AXLSFile)
{
const xlCellTypeLastCell = 0x0000000B;
Variant XLApp = CreateOleObject("Excel.Application");

XLApp.OlePropertyGet("Application").OlePropertyGet("Workbooks").
OleProcedure("Open", AXLSFile.c_str());
XLApp.OlePropertySet("Visible", false);
Variant Sheet = XLApp.OlePropertyGet("ActiveSheet");

XLApp.OlePropertyGet("Cells").
OlePropertyGet("SpecialCells", xlCellTypeLastCell).OleProcedure("Activate");
int x = XLApp.OlePropertyGet("ActiveCell").OlePropertyGet("Row");
int y = XLApp.OlePropertyGet("ActiveCell").OlePropertyGet("Column");
AGrid->RowCount = x;
AGrid->ColCount = y;

for(int rows = 0; rows < x; rows++)
{
for(int cols = 0; cols < y; cols++)
{
AGrid->Cells[AGrid->FixedCols + cols][AGrid->FixedRows + rows] =
Sheet.OlePropertyGet("Cells").
OlePropertyGet("Item", rows + 1 , cols + 1);
}
}

Sheet = Unassigned;
XLApp.OlePropertyGet("Application").OleProcedure("Quit");
XLApp = Unassigned;
return true;
}

void __fastcall TFormRegModel::ButClick(TObject *Sender)
{
if(Xls_To_StringGrid(StringGrid1, "D:\\book1.xls"))
{
ShowMessage("Table has been exported!");
}
}
, всякие обработки исключений повесь сама...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 13:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name