Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

MySQL -> Excell средствами PHP

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Чт Янв 27 2005 11:24    Заголовок сообщения: MySQL -> Excell средствами PHP Ответить с цитатой

г-да вебматёрые, помогите пожалуйста решить проблему - как сконвертировать таблицу из MySQL в файл Excell средствами PHP
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Destructor



Зарегистрирован: 28.01.2005
Сообщения: 6

СообщениеДобавлено: Пт Янв 28 2005 11:34    Заголовок сообщения: Ответить с цитатой

Ужас, ну ты загнул Sad=)
Кажется, что для этого надо поюзать COM

Например, так:
Код:

   function WriteExcel($strPath,$astrSheetName,$astrSQL){
/* This function takes a file save path, and array of sheet names and a corresponding array */
/* of SQL queries for each sheet and created a multi-worksheet excel spreadsheet*/
   $C_NAME=__CLASS__."::".__FUNCTION__;
       $dbs=new clsDB;
       $exapp = new COM("Excel.Application") or Die ("Did not connect");
       $intSheetCount=count($astrSheetName);
       $wkb=$exapp->Workbooks->Add();   
           $exapp->Application->Visible = 1;
       for ($int=0;$int<$intSheetCount;$int++){
           $sheet=$wkb->Worksheets($int+1);
           $sheet->activate;
           $sheet->Name=$astrSheetName[$int];
           $intRow=1;
           $qrySQL=$dbs->GetQry($astrSQL[$int],$C_NAME,__LINE__);
           $rstSQL=$qrySQL->fetchRow(DB_FETCHMODE_ASSOC);
           $astrKeyNames=array_keys($rstSQL);
           $intCols=count($astrKeyNames);
           $qrySQL=$dbs->GetQry($astrSQL[$int],$C_NAME,__LINE__);
           while($rstSQL=$qrySQL->fetchRow(DB_FETCHMODE_ASSOC)){
               $strOut="";//initialize the output string
               for ($int2=0;$int2<$intCols;$int2++){//we start at 1 because don't want to output the table's index
                   if($intRow==1){
                       $strOut=$astrKeyNames[$int2];
                   }else{
                       $strOut=$rstSQL[$astrKeyNames[$int2]];
                   }
                       $sheet->activate;
                       $cell=$sheet->Cells($intRow,($int2+1));//->activate;
                       $cell->Activate;
                         $cell->value = $strOut;
                   }//end of colcount for loop
               $intRow++;
           }//end while loop
       }//end sheetcount for loop
       if (file_exists($strPath)) {unlink($strPath);}
       $wkb->SaveAs($strPath);
       $wkb->Close(false);
       unset($sheet);
       $exapp->Workbooks->Close(false);
       unset($wkb);
       $exapp->Quit;
       unset($exapp);
       unset($dbs);
   }//function WriteExcel

http://ru2.php.net/manual/ru/ref.com.php
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Пт Янв 28 2005 11:49    Заголовок сообщения: Ответить с цитатой

всё бы ничего, да вот " COM functions are only available for the Windows version of PHP."
предполагается использовать этот скрипт под юниксом ;( что то я где то копал на эту тему, и вроде сквозь упоминалась ADO DB - такое может быть?
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Destructor



Зарегистрирован: 28.01.2005
Сообщения: 6

СообщениеДобавлено: Пт Янв 28 2005 14:22    Заголовок сообщения: Ответить с цитатой

Да, блин, ситуация. Confused
Нужно поюзать мастдайные технологии под ЮНИХом %)))
Остаётся только вручную: исследовать формат файлов excel и написать генерацию xls-файла php-сценарием Twisted Evil

P.S. ADO DB - это ActiveX data objects databases - тоже чисто виндовая технология.

Здесь ещё посмотри
http://www.opennet.ru/base/dev/php_gen_excel.txt.html
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...