Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2011, 20:03   #1
SevenXP
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 44
По умолчанию Экспорт DBGrid в Excel

Есть пример на Delphi на Builder C++ не смог перевести и легкий пример найти тоже не смог на делфи норм помогите сделать простейший экспорт всех данных в Excel с DBGrid.

Пример который пытался перевести
Код:

//Export напрямую в Excel без промежуточной передачи данных//
//*********************//
//uses -> ComObj
//*********************//
procedure TMainForm.ExportClick(Sender: TObject); 
var 
i,j,index: Integer; 
ExcelApp,sheet: Variant; 
begin 
ExcelApp := CreateOleObject('Excel.Application'); 
ExcelApp.Visible := False; 
ExcelApp.WorkBooks.Add(-4167); 
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Export'; 
sheet:=ExcelApp.WorkBooks[1].WorkSheets['Export']; 
index:=1; //Загоняем с первой строки 
DBGrid1.DataSource.DataSet.First; 
for i:=1 to DBGrid1.DataSource.DataSet.RecordCount do 
begin 
for j:=1 to DBGrid1.FieldCount do 
sheet.cells[index,j]:=DBGrid1.fields[j-1].asstring; 
inc(index); 
DBGrid1.DataSource.DataSet.Next; 
end; 
ExcelApp.Visible := true; 
end;

Последний раз редактировалось Stilet; 08.06.2015 в 15:10.
SevenXP вне форума Ответить с цитированием
Старый 29.05.2011, 19:15   #2
SevenXP
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 44
По умолчанию

Рыскал по интернету экспорт нормального не чего не нашел решил написать сам. Экспортирует все записи с DBGrid1 в Excel

Подключяем #include <comobj.hpp>

Глоб пер. Хотя и не обезательно
String exp;
Variant app ;
Variant books ;
Variant book ;
Variant sheet ;

Затем на кнопку

int index,i,j;
app = CreateOleObject("Excel.Application" );
books = app.OlePropertyGet("Workbooks");
books.Exec(Procedure("Open")<<"E:\\ 1.xlsx");
book = books.OlePropertyGet("item",1);
sheet= book.OlePropertyGet("WorkSheets",1) ;

index=1;
DBGrid1->DataSource->DataSet->First();
for(i=1;i<DBGrid1->DataSource->DataSet->RecordCount;i++){
for(j=1;j<DBGrid1->FieldCount;j++){
exp=DBGrid1->Fields[j-1]->AsString;
sheet.OlePropertyGet("Cells").OlePr opertyGet("Item",index,j).OleProper tySet( "Value", exp.c_str()); }
index++;
DBGrid1->DataSource->DataSet->Next();
}
app.OlePropertySet("Visible", 1);
}

Вот один - не создает а открывает имеющийся уже Excel файл 2007. Буду доделовать но уже мелочи.
SevenXP вне форума Ответить с цитированием
Старый 08.07.2011, 15:36   #3
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Код:
books.Exec(Procedure("Open")<<"E:\\ 1.xlsx")
что-то не очень понял реакцию моего Builder'a на эту функцию.
Мой С++ Builder жжет и пишет не могу найти файл ИСТИНА.xls

Последний раз редактировалось Drugnir; 08.07.2011 в 15:39.
Drugnir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в Excel zingo Помощь студентам 1 26.05.2011 05:33
Экспорт данных из DBgrid pusik БД в Delphi 0 24.05.2011 09:14
Экспорт содержимого Dbgrid в html и xml Discovery-24 БД в Delphi 0 03.05.2011 21:26
Экспорт DBGrid в Excel SpyCrypt БД в Delphi 5 28.04.2011 15:54
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15