Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
Spirited
7 / 7 / 1
Регистрация: 18.01.2009
Сообщений: 55
1

Импорт данных с таблицы Paradox в Excel через ODBC

18.01.2009, 22:47. Просмотров 3162. Ответов 3
Метки нет (Все метки)

Какие классы используються в C++ Builder для роботы с ODBC, и как можна организовать передачу данных в Exel
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2009, 22:47
Ответы с готовыми решениями:

Импорт данных из Excel в SQL через Borland C++Builder
Доброй ночи! Есть SQL БД, я к ней подключаюсь в Borland C++Builder посредством ADO. Часть данных БД...

Импорт из Excel в StringGrid через OpenDialog
В приложении нужно данные из Excel импортировать в StringGrid. Код вроде как нашёл, но везде, где...

Импорт данных Excel
Здравствуйте! Прежде всего каюсь, скатала кусок приложения,но все это не из корыстных...

Импорт данных из Excel в базу interbase
Добрый вечер Уважаемая Администрация и пользователи форума!!! Помогите разобраться в вопросе: ...

Импорт данных Excel. Объединенные ячейки в файле xlt
Здравствуйте, обычный код для передачи данных в Excel. Variant App, Sh; TDate Today = Now(); ...

3
Lord_Voodoo
Супер-модератор
8716 / 2371 / 137
Регистрация: 07.03.2007
Сообщений: 11,322
Завершенные тесты: 1
19.01.2009, 09:52 2
используйте ADO и TExcelApplication
вот пример выгрузки в ексель:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
    TOraQuery* Query1 = new TOraQuery(NULL);
    Query1->Session = DbManager->Session1;
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT * FROM DOG_DSL WHERE CNT = '" + DSrc->DataSet->FieldByName("CNT")->AsString + "'");
    RangePtr my_range;
    AnsiString r = "";
    TExcelApplication* ExcelApplication1 = new TExcelApplication(NULL);
    TExcelWorkbook* ExcelWorkbook1 = new TExcelWorkbook(NULL);
    TExcelWorksheet* ExcelWorksheet1 = new TExcelWorksheet(NULL);
    try{
      Query1->Open();
      RangePtr my_range;
      char s[16];
      AnsiString r = "";
      // connect to Excel
      ExcelApplication1->Connect();
      // add a workbook
      ExcelApplication1->Workbooks->Add();
      // open the workbook
      ExcelWorkbook1->ConnectTo(ExcelApplication1->Workbooks->get_Item(TVariant(1)));
      ExcelWorkbook1->Activate(0);
      // open the workbook to the first worksheet
      ExcelWorksheet1->ConnectTo(ExcelWorkbook1->Sheets->get_Item(TVariant(1)));
      ExcelWorksheet1->Activate(0);
      // insert field names into the worksheet
      for(int i = 0; i < Query1->FieldCount; i++){
        r = xlRCtoA1(1, i + 1);
        // get the range and iterate through its cells while inserting field names
        my_range = ExcelWorksheet1->get_Range(TVariant("A1"), TVariant(r));
        my_range = my_range->get_Cells()->get_Item(TVariant(1), TVariant(i + 1));
        my_range->set_Value(TVariant(Query1->Fields->Fields[i]->FieldName.c_str()));
      }
      // insert data into the worksheet
      while(!Query1->Eof){
        for(int i = 0; i < Query1->FieldCount; i++){
          r = xlRCtoA1(2, i + 1);
          // get the range and iterate through its cells while inserting data
          my_range = ExcelWorksheet1->get_Range(TVariant("A1"), TVariant(r));
          my_range = my_range->get_Cells()->get_Item(TVariant(2), TVariant(i + 1));
          if(Query1->Fields->Fields[i]->DataType != ftDateTime)
            my_range->set_NumberFormat(TVariant("@"));
          my_range->set_Value(TVariant(Query1->Fields->Fields[i]->AsString.c_str()));
        }
        if(!Query1->Eof)
          Query1->Next();
      }
      Query1->Close();
      delete my_range;
      ExcelWorksheet1->Disconnect();
      delete ExcelWorksheet1;
      AnsiString S = Application->ExeName.SubString(1, Application->ExeName.LastDelimiter("\\") - 1) + "[URL="file://\\docs\\record.xls"]\\docs\\record.xls[/URL]";
      // save the workbook with an user-given filename
      ExcelWorkbook1->Close(TVariant(true), TVariant(S), TNoParam(), LOCALE_USER_DEFAULT);
      ExcelWorkbook1->Disconnect();
      delete ExcelWorkbook1;
      // disconnect from Excel
      ExcelApplication1->Quit();
      ExcelApplication1->Disconnect();
      delete ExcelApplication1;
    }catch(...){}
    delete Query1;
0
Carbide
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 28
06.12.2010, 09:58 3
Уважаемый Lord_Voodoo а если программа написана с использованием BDE, как организовать выгрузку в EXEL?
Заранее спасибо за ответ
0
Lord_Voodoo
Супер-модератор
8716 / 2371 / 137
Регистрация: 07.03.2007
Сообщений: 11,322
Завершенные тесты: 1
06.12.2010, 14:53 4
Carbide, ну вообще мой пример как раз и работает с БДЕ-шной TQuery
0
06.12.2010, 14:53
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2010, 14:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так...

Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так...

ODBC драйвера импорт данных в Excel
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.