Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PHP] MySQL to Excel, Вывести в эксель инфу 
:(
    Опции темы
Rodman
Дата 5.5.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



Дароф...

нужен пример как вывести инфу из БД по запросу
Код

SELECT Orders.NUM_ORDER, Orders.FIO_ORDER, Insurance_Object.Tarif*Insurance_Object.Insurance_Summ AS One, Orders.DATE_ORDER
FROM Orders INNER JOIN Insurance_Object ON Orders.ID_ORDER = Insurance_Object.ID_ORDER
WHERE (Orders.DATE_ORDER Between PrmDate1 And PrmDate2);


читал что надо при помощи PEAR..
но тоже куча разбросанной инфы...

возможно ли без этой библиотеки?

короч мона пример как это все в эксель вывести?

сенкс
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Dexx
Дата 6.5.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

Репутация: нет
Всего: 7





--------------------

PM   Вверх
Rodman
Дата 10.5.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



я не могу понять как установить...

в какой консоли набирать команду?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
wofs
Дата 13.5.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.5.2007

Репутация: нет
Всего: нет



я в свое время делал так
Источник
Код

 unit DBGridExportToExcel;

 interface

 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, StdCtrls, ComCtrls, DB, IniFiles, Buttons, dbgrids, ADOX_TLB, ADODB;


 type TScrollEvents = class
        BeforeScroll_Event: TDataSetNotifyEvent;
        AfterScroll_Event: TDataSetNotifyEvent;
        AutoCalcFields_Property: Boolean;
   end;

 procedure DisableDependencies(DataSet: TDataSet; var ScrollEvents: TScrollEvents);
 procedure EnableDependencies(DataSet: TDataSet; ScrollEvents: TScrollEvents);
 procedure DBGridToExcelADO(DBGrid: TDBGrid; FileName: string; SheetName: string);


 implementation

 //Support procedures: I made that in order to increase speed in 
//the process of scanning large amounts 
//of records in a dataset 

//we make a call to the "DisableControls" procedure and then disable the "BeforeScroll" and 
//"AfterScroll" events and the "AutoCalcFields" property. 
procedure DisableDependencies(DataSet: TDataSet; var ScrollEvents: TScrollEvents);
 begin
      with DataSet do
           begin
                DisableControls;
                ScrollEvents := TScrollEvents.Create();
                with ScrollEvents do
                     begin
                          BeforeScroll_Event := BeforeScroll;
                          AfterScroll_Event := AfterScroll;
                          AutoCalcFields_Property := AutoCalcFields;
                          BeforeScroll := nil;
                          AfterScroll := nil;
                          AutoCalcFields := False;
                     end;
           end;
 end;

 //we make a call to the "EnableControls" procedure and then restore 
// the "BeforeScroll" and "AfterScroll" events and the "AutoCalcFields" property. 
procedure EnableDependencies(DataSet: TDataSet; ScrollEvents: TScrollEvents);
 begin
      with DataSet do
           begin
                EnableControls;
                with ScrollEvents do
                     begin
                          BeforeScroll := BeforeScroll_Event;
                          AfterScroll := AfterScroll_Event;
                          AutoCalcFields := AutoCalcFields_Property;
                     end;
           end;
 end;

 //This is the procedure which make the work: 

procedure DBGridToExcelADO(DBGrid: TDBGrid; FileName: string; SheetName: string);
 var
   cat: _Catalog;
   tbl: _Table;
   col: _Column;
   i: integer;
   ADOConnection: TADOConnection;
   ADOQuery: TADOQuery;
   ScrollEvents: TScrollEvents;
   SavePlace: TBookmark;
 begin
   // 
  //WorkBook creation (database) 
  cat := CoCatalog.Create;
   cat._Set_ActiveConnection('Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' + FileName + ';Extended Properties=Excel 8.0');
   //WorkSheet creation (table) 
  tbl := CoTable.Create;
   tbl.Set_Name(SheetName);
   //Columns creation (fields) 
  DBGrid.DataSource.DataSet.First;
   with DBGrid.Columns do
     begin
       for i := 0 to Count - 1 do
         if Items[i].Visible then
         begin
           col := nil;
           col := CoColumn.Create;
           with col do
             begin
               Set_Name(Items[i].Title.Caption);
               Set_Type_(adVarWChar);
             end;
           //add column to table 
          tbl.Columns.Append(col, adVarWChar, 20);
         end;
     end;
   //add table to database 
  cat.Tables.Append(tbl);

   col := nil;
   tbl := nil;
   cat := nil;

   //exporting 
  ADOConnection := TADOConnection.Create(nil);
   ADOConnection.LoginPrompt := False;
   ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' + FileName + ';Extended Properties=Excel 8.0';
   ADOQuery := TADOQuery.Create(nil);
   ADOQuery.Connection := ADOConnection;
   ADOQuery.SQL.Text := 'Select * from [' + SheetName + '$]';
   ADOQuery.Open;


   DisableDependencies(DBGrid.DataSource.DataSet, ScrollEvents);
   SavePlace := DBGrid.DataSource.DataSet.GetBookmark;
   try
   with DBGrid.DataSource.DataSet do
     begin
       First;
       while not Eof do
         begin
           ADOQuery.Append;
           with DBGrid.Columns do
             begin
               ADOQuery.Edit;
               for i := 0 to Count - 1 do
                 if Items[i].Visible then
                   begin
                     ADOQuery.FieldByName(Items[i].Title.Caption).AsString := FieldByName(Items[i].FieldName).AsString;
                   end;
               ADOQuery.Post;
             end;
           Next;
         end;
     end;

   finally
   DBGrid.DataSource.DataSet.GotoBookmark(SavePlace);
   DBGrid.DataSource.DataSet.FreeBookmark(SavePlace);
   EnableDependencies(DBGrid.DataSource.DataSet, ScrollEvents);

   ADOQuery.Close;
   ADOConnection.Close;

   ADOQuery.Free;
   ADOConnection.Free;

   end;

 end;

 end.

PM MAIL   Вверх
Rodman
Дата 13.5.2009, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



wofs, ну как тебе сказать...
на делфине у меня уже есть... просто на РНР надо))))
PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.