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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сформировать документ word и excel ? 
:(
    Опции темы
Muchenik
Дата 20.12.2005, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть форма, в ней данные. Как сформировать документ word и excel, с этими данными? Это нужно с DOM разбираться? Как проще сделать? Помогите кто может.
PM MAIL ICQ   Вверх
Guest
Дата 20.12.2005, 00:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может ссылочки на документацию у кого то найдуться. Дайте пожалуйста.
  Вверх
DrNemo
Дата 20.12.2005, 05:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 7.12.2005
Где: Не пейте ракетное топливо! :-)

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



я похожий вопрос задовал, сказали зря стараешся.
--------------------
На свете есть только две вещи которые сносят башню - космос и женщины (К.Ю.Бунин)Самый мастдаевский сакс в том, что рулезные фичи глючат :))
PM MAIL WWW ICQ   Вверх
chup007
Дата 17.7.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 12.3.2006
Где: РФ ЖИГУЛЕВСК 63 Р ЕГИОН

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



создание документа Word, автора не знаю и не помню откуда скачал  smile 
Код

<?
 // ---------------------------------------------------------------------
 //            Формирование документа для 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 ICQ   Вверх
sergejzr
Дата 17.7.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Ну и вот пример работы с простенькими .xls (без формул)
Код

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();
   


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
szz
Дата 20.7.2006, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

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



А про pear забыли?
Excel: http://pear.php.net/search.php?q=excel&amp...amp;x=0&y=0
А доки (не rtf!) можно генерить если на виндах работаете - просто через COM!
Вот простенький примерчик:
http://www.programmershelp.co.uk/phpcreateword.php 


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


 




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


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

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