Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Cоздать многостраничные xls файлы в цикле phpexcel lib
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Cоздать многостраничные xls файлы в цикле phpexcel lib

Страниц (1): [1]
 

1. Kreol2013 - 17 Сентября, 2013 - 09:58:24 - перейти к сообщению
Господа, доброго времени суток.
Прошу помощи в решении вопроса.
Необходимо в цикле создавать многостраничные xls файлы.
Что не пробовал, но результат лишь 1, создается только 1-й файл.
Направите на путь истинный.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         ini_set('include_path', ini_get('include_path').';../Classes/');
  3.         require_once 'PHPExcel.php';
  4.         require_once 'PHPExcel/IOFactory.php';
  5.         //include 'PHPExcel/Writer/Excel2007.php';
  6.  
  7. // Create new PHPExcel object
  8. for($r=0;$r<=5;$r++)
  9. {
  10.         $objPHPExcel = new PHPExcel();
  11.        
  12.         for($y=0;$y<=5;$y++)
  13.         {
  14.                 // Create a first sheet, representing sales data
  15.                 $objPHPExcel->setActiveSheetIndex($y);
  16.                 $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Something');
  17.                 // Rename sheet
  18.                 $objPHPExcel->getActiveSheet()->setTitle('Name of Sheet '.$y);
  19.  
  20.                 // Create a new worksheet, after the default sheet
  21.                 $objPHPExcel->createSheet();
  22.         }
  23.  
  24.         // Redirect output to a client’s web browser (Excel5)
  25.         header('Content-Type: application/vnd.ms-excel');
  26.         header('Content-Disposition: attachment;filename="name_of_file'.$r.'.xls"');
  27.         header('Cache-Control: max-age=0');
  28.         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  29.         $objWriter->save('php://output');
  30.        
  31.                 //$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  32.                 //$objWriter->save(dirname($file).'/file.xlsx');
  33.         $objPHPExcel->disconnectWorksheets();
  34.         unset($objPHPExcel);
  35. }
  36. ?>


результат name_of_file0.xls
2. Contr - 17 Сентября, 2013 - 10:07:48 - перейти к сообщению
Пользовался я импортом в Excel в сметных программах - так там при импорте такая грязь идет, в том числе и скрытые колонки, и формулы, которые нах не нужны.
Поэтому я делаю экспорт в формате txt с разделителями табуляцией. Полученный файл открывается в блокноте, MS Excel, при желании форматируется (жирный, курсив...). Просто и удобно.

Если передо мной стояла бы такая задача, я бы посмотрел, есть ли возможность делать экспорт не одним файлом, а несколькими. Или, 2й вариант, посмотрел бы каким спецсимволом разделяются страницы в excel и вставлял бы его
3. Kreol2013 - 17 Сентября, 2013 - 10:18:20 - перейти к сообщению
Мне нужно сгенерировать 1000 файлов со своим количеством листов.
Запись в файлы проходит нормально, просто не создется количество.
txt не вариант.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. //header('Content-Type: application/vnd.ms-excel');
  2. //header('Content-Disposition: attachment;filename="name_of_file'.$r.'.xls"');
  3. //header('Cache-Control: max-age=0');
  4. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  5. $objWriter->save($r.'.xls');

помогло, правда не понятно что же ему мешало.

 

Powered by ExBB FM 1.0 RC1