построение графика в excel средствами php

Mol4ok

Новичок
построение графика в excel средствами php

Всем привет!
Есть такая задача, вынести данные из базы данных и далее все вывести в excel + по ним в excel построить график, данные в excel вывожу таким вот способом
PHP:
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
Ну а график как построить тут же в excel не знаю(

Есть ли возможность построение графика в excel средствами php?
Подскажите плиз, заранее спасибо.
 

soines

Новичок
Re: построение графика в excel средствами php

Автор оригинала: Mol4ok
Всем привет!
Есть такая задача, вынести данные из базы данных и далее все вывести в excel + по ним в excel построить график, данные в excel вывожу таким вот способом
PHP:
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=extraction.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
Ну а график как построить тут же в excel не знаю(

Есть ли возможность построение графика в excel средствами php?
Подскажите плиз, заранее спасибо.
Честно говоря с такой проблемой не сталкивался, но с excel можно работать через COM, вполне возможно можно добавить графики.
Как второй вариант строишь нужный график прямо в экселе, сохраняешь файл, открываешь редактор смотришь различия файла с графиками от файла без графика. Реверс инженеринг)
 

Mol4ok

Новичок
через COM тоже вариант, и возможно есть функции построения графиков, но наш сервак не поддерживает com, походу не установлено, тока так как я вывожу выше, реверс инжиниринг) - прикольно, тока надо чтобы пхп сам строил все....(
 

soines

Новичок
Автор оригинала: Mol4ok
через COM тоже вариант, и возможно есть функции построения графиков, но наш сервак не поддерживает com, походу не установлено, тока так как я вывожу выше, реверс инжиниринг) - прикольно, тока надо чтобы пхп сам строил все....(
Ну так ты посмотри что в файле получится, проанализируй какие данные на входе и на выходе, поменяй данные - посмотри изменения и подгоняй код.
 

Mol4ok

Новичок
что значит на входе и выходе???
и поменяй данные? \
php генерирует эсель файл с двумя колонками - вот надо построить графически зависимость то бишь график прямо в экселе.
 

tz-lom

Продвинутый новичок
попробуйте обходные пути:
1- создать шаблон excel файла где график уже построен,но не заполнены столбцы, соответственно делаем копию и заполняем
2-воспользуйтесь VBA макросами
 

soines

Новичок
Mol4ok, у тебя есть данные на основе которых строиться файл, правильно?

Ты берешь этот файл в экселе добавляешь в него график вручную, сохраняешь. Смотришь что добавилось. Исходя из этого в своем скрипте генерируешь дополнительный код. Так более понятно?
 

Mol4ok

Новичок
да теперь более понятно, надо пробовать...

-~{}~ 22.06.10 11:46:

Автор оригинала: tz-lom
попробуйте обходные пути:
1- создать шаблон excel файла где график уже построен,но не заполнены столбцы, соответственно делаем копию и заполняем
2-воспользуйтесь VBA макросами
сделал вот так вот
PHP:
<?php
$file = 'ex.xls';
$newfile = 'ex1.xls';

if (!copy($file, $newfile)) {
    echo "не удалось скопировать $file...\n";
}

$line1="ID\sales\t";
$line2="1\t3\t";
$line3="2\t5\t";
$line4="3\t7\t";
$line5="4\t4\t";
$line6="5\t2\t";

$data="\n$line2\n$line3\n$line4\n$line5\n$line6\n";
//header('Content-type: text/plain'); 
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=ex1.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";


?>
Как видите, делаю копию файла шаблона(с графиком), ex.xls - это шаблон, а ex1.xls это копия, все копируется нормально, но далее заменяю в новом файле колонки цифр, по которым строится график, - цифры заменяются, но график исчезает, я подозреваю что я неправильно редактирую файл, пролностью перезаписывая его, есть еще какой-нибудь способ правильно отредактить файл excel?
 

soines

Новичок
Вопрос №1:
Что по твоему делает этот код?

Вопрос №2:
Код:
print "$header\n$data";
Что за переменная $header?

Вопрос №3:
Код:
header("Content-Disposition: attachment; filename=ex1.xls");
Ты понимаешь что делает эта строчка? и что не имеет абсолютно никакого отношения к
Код:
$newfile = 'ex1.xls';
.
 

Mol4ok

Новичок
мой код копирует шаблон, затем далее работаем с скопированным файлом и заменяем запись в строго заданных ячейках

$header - это осталась от старого кода - она не мешает

header("Content-Disposition: attachment; filename=ex1.xls"); - эта строчка указывает на файл(уже скопированный шаблон), я точно не знаюю что делает, но боюсь что полностью перезаписывает файл и график исчезает естественно, это так?
 

mity

Новичок
Mol4ok Во первых уберите всё лишнее
print "$header\n$data"; Вам именно мешает, это выводит лишнее "n" в начале файла .
print "$header; это бессмысленный код, не нужно его сюда постить!, Когда вы включите вывод ошибок у Вас здесь вылезит предупреждение, которое поподёт в выходной файл.

Во вторых не пытайтесь работать с php файлом простыми операциями записями, excel файл имеет сложный бинарный формат, копайте в сторону различных "Excel Writer" и т.д.
 

soines

Новичок
А может ему сначала надо объяснить что он не перезаписывает файл, а просто отдает его на скачку с таким же именем?)
 

Mol4ok

Новичок
Автор оригинала: soines
А может ему сначала надо объяснить что он не перезаписывает файл, а просто отдает его на скачку с таким же именем?)
Да это вообще хреновастенько, попробую сделать через excel writer
 
Сверху