Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> генерация exel,word,csv,rtf, сабж 
:(
    Опции темы
alligator
Дата 10.10.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Где можно почитать?? или примеры....
PM MAIL   Вверх
Acraft
Дата 10.10.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ссылка на этот скрипт была где-то здесь. Но скрипт есть, а ссылки не помню.
Работа с Exel:
Код

class XLSTable
 {

  var $cells;
  var $rows,$cols;
 var $character_array;
  function XLSTable($rows,$cols)
  {
    $this->cells=array();
    for($i=0;$i<$rows;$i++){
     $this->cells[$i]=array();
    
    for($y=0;$y<$cols;$y++)
    $this->cells[$i][$y]='';
    }
    
    $this->cols=$cols;
    $this->rows=$rows;
    $str1=explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z");
    for($i=0;$i<count($str1);$i++)
{
    $this->character_array[$str1[$i]]=$i;
}
  }
  function setCell($row, $col, &$value)
  {
    $this->cells[$row-1][$col-1]=$value; //row-1, потому что excel считает с 1
  }
   function setExcelCell($row, $col, &$value)
  {
  
    if(isset($this->character_array[$col]))
    {
     $x=$this->character_array[$col];
    }else{throw "Only Aa-Zz allowed";}
        
    $this->cells[$row-1][$x]=$value; //row-1, потому что excel считает с 1
  }
  function toXLS()
  {
    $s="";
    for( $i=0;$i<$this->rows;$i++)
     {
       for($n=0;$n<$this->cols;$n++)
        {
         $s.=$this->cells[$i][$n];
         if($n<$this->cols-1)
           $s.="\t"; //Между ячейками табулятор
        }
       $s.="\n";//между строками переход
    }
   return $s;
  } 
};
 header("Content-Type: application/msexcel;"); 
 header("Content-Disposition: attachment; filename=text.xls");
  $table=new XLSTable(10,20);
  $str=("cell x=");
  //str+x+"y="+y
  //заполняем чем попало
  for($y=1;$y<=10;$y++)
      for($x=1;$x<=20;$x++)
  $table->setCell($y,$x,$str="sdgsdgf");
      
  //или конкретно ячейку
  $table->setCell(2,3,$str="checkit");//сажаем ячейку 2,3
  // ну и бонусная функция (раз уж я сел за компилер :))
  $str="checkitD";
  $table->setExcelCell(3,'D',$str);//сажаем ячейку 3,D
  //выписываем в файл

  print $table->toXLS(); 


Word:
Код

<?
 // ---------------------------------------------------------------------
 //            Формирование документа для Word'a
 // ---------------------------------------------------------------------
 
 header("Content-Type: application/msword;"); 
 header("Content-Disposition: attachment; filename=sait_out.rtf");
 /*
 // ---------------------------------------------------------------------
 // вариант  с шаблоном. 
 // Сохраняем файл как rtf и в нужных местах вписываем поля
 // ---------------------------------------------------------------------
 
 $pole1='вставляем';
 
    $f = join('',file('1.rtf'));
 // замена полей на значения
    $f= str_replace('%_TEXT_%',$pole1,$f);
 
    print $f;
 // ---------------------------------------------------------------------
 */
 
 // ---------------------------------------------------------------------
 // вариант полного формирования файла
 // ---------------------------------------------------------------------
 
 echo '{\rtf1'; // начало документа (признак rtf и версия)
 echo '\ansi\ansicpg1251'; // объявляем charset
 echo '\deff0\deflang1049' ; // объявляем русский язык
 
 // если у нас используются разные цвета,то объявить их
 echo '{\colortbl ;';
 echo   '\red0\green0\blue255;'; // в тексте вставлять \cf1
 echo   '\red0\green255\blue0;'; // в тексте вставлять \cf2
 echo   '\red255\green0\blue0;'; // в тексте вставлять \cf3 и т.д.
 echo '}'; 
 
 // Здесь попробывали цвета
 echo '\cf1 проба \cf2 проба \cf3 проба \cf0 ' ;
 echo '\par'; // новый абзац 
 
 // Здесь поигрались с Ж К Ч
 echo ' \b жирный\b0 \i  курсив \i0 \ul подчеркнутый\ul0  нормальный';
 echo '\par';
 
 // Экспериментируем с размером шрифта /fsN N-halfpoints(def 24)
 echo '\pard \fs24  24text \fs48 48text  \fs28 привычный для нас размер 14 пунктов \par';
 
 
 // разбираемся с выравниванием текста
 // это делается через тег начала параграфа /pard и подключи /ql /qc /qj /qr
 echo '\pard\qlлевое\par\pard\qc по центру \par\pard\qj по ширине выравненный \par\pard\qrправое\par';
 
 // разбираемся с таблицами
 // таблица это совокупность строк  (\trowd .... \row)
 // ниже минимальное описание таблицы
 echo '\par \trowd 
 \cellx5000 \cellx10000 
 \pard \intbl 1 \cell 
 \pard \intbl 2 \cell 
 \pard \intbl \row
 \pard
 ';
 
 // остается разобраться как внедрить в документ jpeg
 echo '{\pict\jpegblip '.chr(13).chr(10);
 //дальше файл в 16ичном виде
    $f = join('',file('1.jpg'));
    print bin2hex($f);
 //
 echo chr(13).chr(10).'}'; // закончили картинку
 
 echo '\par'.chr(13).chr(10).'}'; // закончили документ
 
 // p.s. По стандарту все русские символы должны быть 7битными , 
 //      т.е. перекодированы к виду \'xx .
 //      Но ворд нормально скушает и без этого :) 
 ?>

PM MAIL   Вверх
alligator
Дата 10.10.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Благодарю буду разбираться....
PM MAIL   Вверх
AztEK
Дата 11.10.2006, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



RTFM по COM-объектам


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
SamDark
Дата 11.10.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

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



Мой класс для работы с CSV: http://rmc.net.ru/article/programming/phpclasses/


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Fubu_By
Дата 15.1.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может кто подскажет, как допустим в екселе у выведеной таблици сделать рамку по-толще, цвет поменять, и шрифт, цвет, толщену у выводимых символов?

а и ещё очень важно как выставить ширину и высоту ячеек

Это сообщение отредактировал(а) Fubu_By - 15.1.2008, 18:44


--------------------
PM MAIL WWW   Вверх
skyboy
Дата 16.1.2008, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Fubu_By, попробуй поработать с office 2007. основанный на xml формат, который описан много более подробнее своего "полностью закрытого" предшественника, гораздо более приспособлен для манипуляций в роли простого текста.
PM MAIL   Вверх
FractalizeR
Дата 16.1.2008, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

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



А разве в PEAR нет необходимых автору вопроса пакетов?


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
Fubu_By
Дата 16.1.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я хочу свой маленький класс, т.к. многого не нужно, нужно только выделить рамку и шрифт фирный в шапке таблици


--------------------
PM MAIL WWW   Вверх
Naruvi
Дата 17.1.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 9.6.2005
Где: Москва

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



а разве в excel нельзя скормить обычный html, но с с расширением xls?
PM MAIL WWW ICQ   Вверх
mikla
Дата 17.1.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Fubu_By @ 15.1.2008,  18:36)
может кто подскажет, как допустим в екселе у выведеной таблици сделать рамку по-толще, цвет поменять, и шрифт, цвет, толщену у выводимых символов?

а и ещё очень важно как выставить ширину и высоту ячеек

Код


  header("Content-Type: application/vnd.ms-excel");
  header("Content-disposition: attachment; filename=ex.xls");
  
  echo "<table border = 3> <tr> <td width = 200 height = 100> <b> 1 </b> </td> <td> 2 </td> </tr> </table>";


кормим ему обычный html.

--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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