Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [PHP] MySQL to Excel


Автор: Rodman 5.5.2009, 19:54
Дароф...

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

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..
но тоже куча разбросанной инфы...

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

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

сенкс

Автор: Dexx 6.5.2009, 10:24
Тут смотри
http://phpclub.ru/detail/article/Excel_Writer

Автор: Rodman 10.5.2009, 21:32
я не могу понять как установить...

в какой консоли набирать команду?

Автор: wofs 13.5.2009, 12:22
я в свое время делал так
http://www.delphisources.ru/pages/faq/base/dbgrid_excel_non_ole.html
Код

 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.

Автор: Rodman 13.5.2009, 23:22
wofs, ну как тебе сказать...
на делфине у меня уже есть... просто на РНР надо))))

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