[решено] PHP Вызрузка данных в Excel, из БД

Ответить
Аватара пользователя
zvezda_t

[решено] PHP Вызрузка данных в Excel, из БД

Сообщение zvezda_t »

Здравствуйте, уважаемые программисты!



Пожалуйста, посоветуйте мне самый лучший класс для работы с Excel ! Изображение

Мне нужно выгрузить данные из БД и сформировать отчет в виде excel на php.



Заранее огромное спасибо!
Аватара пользователя
zvezda_t

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение zvezda_t »

Если сохранять excel в виде XML (спецификации OpenXML), то можно по шаблону. Т.е. сохраните excel в виде XML (есть в списке опция). Потом откройте файл в текстовом редакторе - на основе того XML-кода делаете вывод в xls-файл из базы (будет обычный XML-файл, открываемый в excel).

Другой вариант - через
COM
...
Аватара пользователя
PhilB

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение PhilB »

Возможно проще создать простой csv файл.

Просто генерите простой файл, разделяя внутри строки данные разделителем (например, запятой). Далее открываете в excel, указывая разделитель.
Аватара пользователя
mar

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение mar »

Варианты без com для xls:

например, + в PEAR есть (или был?) - Spreadsheet/Excel/Writer.php

Это же, портированное в вариант без PEAR можно было бы найти в
phpclasses




А если отчет без особых красивостей, то можно вообще использовать csv
Аватара пользователя
zvezda_t

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение zvezda_t »

Цитата PhilB:



Далее открываете в excel, указывая разделитель.
[решено] PHP Вызрузка данных в Excel, из БД




PhilB, а как мне его открыть в Excel?
Аватара пользователя
zvezda_t

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение zvezda_t »

Sham, через Com объекты у меня вообще не отображается(((

даже не открылся Excel

почему так?
Аватара пользователя
PhilB

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение PhilB »

У вас должен получиться что-то типа:

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

1,2,3,4

3,c,4,3

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

Между линий приведен пример содержмого файла.



Насколько я помню, если у файла расширение csv он предложит его импортировать (независимого от того в проводнике или из excel Файл->Открыть). Майкрософтского офиса нет, но у вас должно быть что-то типа 1.png. (это OpenOffice)
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
PhilB

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение PhilB »

Собственно, глянул сейчас Office 2007 и понял, почему вы не поняли как открыть. Ибо сам не понял, почему нельзя открыть через Файл -> Открыть. Может и можно, но это как то нетривиально и вовсе.

Единственный найденный способ: во вкладке "Данные" есть кнопка "Из текста" - там выбираете файл и импортируете. Интерфейс там сходный со скрином выше (идейноИзображение).
Аватара пользователя
zvezda_t

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение zvezda_t »

Сделала кнопку

PHP код:

Код: Выделить всё

print ""; 



dct_excel_1.php:

PHP код:

Код: Выделить всё

$xls = new COM("Excel.Application"); // Создаем новый COM-объект
    $xls->Application->Visible = 1;      // Заставляем его отобразиться
    $xls->Workbooks->Add();              // Добавляем новый документ
     
    $rangeValue = $xls->Range("A1");
    $rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";
    $rangeValue = $xls->Range("A2");
    $rangeValue->Value = "Шрифт будет иметь высоту 12";
    $rangeValue = $xls->Range("A3");
    $rangeValue->Value = "Имя шрифта - Times New Roman"; 



При нажатии на кнопку в браузере (IE6) открывает пустое окно и никакой реакции.

Что не так?

Вот иcпользуя Com объекты, можно же только сам объект в браузер отправить?

А если я класс PHPExcel использую, объект этого класса как мне в браузер отправить?

У меня получилось создать документ Excel используя класс PHPExcel, но в примере нашла только как отправить его в браузер через заголовки или как его сохранить на сервере.

PHP код:

Код: Выделить всё

//1)отправляем в браузер через заголовки
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

//2)сохраняем
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 



Через заголовки не могу, у меня на этой страничке еще много чего не нужного выводиться...

Как же мне его открыть?
Аватара пользователя
Sham

Re: [решено] PHP Вызрузка данных в Excel, из БД

Сообщение Sham »

Цитата zvezda_t:



Через заголовки не могу, у меня на этой страничке еще много чего не нужного выводиться...

Как же мне его открыть?
[решено] PHP Вызрузка данных в Excel, из БД




при чем тут страница, если нужен отдельный запрос на файл... делайте ссылку на этот скрипт, который отдает содержимое. Либо разруливайте выдачу с помощью параметров (например, ?get=excel)


Цитата zvezda_t:



Вот иcпользуя Com объекты, можно же только сам объект в браузер отправить?

А если я класс PHPExcel использую, объект этого класса как мне в браузер отправить?
[решено] PHP Вызрузка данных в Excel, из БД




в браузер нужно содержимое файла отправлять, с соотв. заголовками.
Ответить

Вернуться в «Вебмастеру»