PHPExcel - считывание 4 файлов CSV в одну рабочую книгу с 4 таблицами - PullRequest
4 голосов
/ 29 ноября 2011

Мне нужно объединить 4 файла CSV в одну книгу Excel с помощью PHPExcel.

Работает над одним CSV-файлом и рабочей книгой в виде одной электронной таблицы. Используя более одного CSV, я не могу поместить каждый CSV-файл в отдельный лист.

Как мне добиться этого с помощью PHPExcel?

Ответы [ 2 ]

4 голосов
/ 29 ноября 2011

Пример этого есть в каталоге Documentation / examples / Readers в хранилище SVN для PHPEXcel: это пример # 13

include 'PHPExcel/IOFactory.php';


$inputFileType = 'CSV';
$inputFileNames = array('./example1.csv','./example2.csv','./example3.csv','./example4.csv');

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$inputFileName = array_shift($inputFileNames);
$objPHPExcel = $objReader->load($inputFileName);
$objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));
foreach($inputFileNames as $sheet => $inputFileName) {
    $objReader->setSheetIndex($sheet+1);
    $objReader->loadIntoExisting($inputFileName,$objPHPExcel);
    $objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));
}


$loadedSheetNames = $objPHPExcel->getSheetNames();
foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $objPHPExcel->setActiveSheetIndexByName($loadedSheetName);
    echo $loadedSheetName,PHP_EOL;
    $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
    var_dump($sheetData);
    echo PHP_EOL;
}
0 голосов
/ 29 ноября 2011

Вы не указали, где именно проблема ...
Для файла Excel с несколькими рабочими листами выполните следующие действия:

  1. Загрузка файла CSV
  2. Создание нового рабочего листа
  3. Запись CSV на новый лист
  4. Перейти к 1

Из документов:
Если вам нужно создать больше листов в книге, воткак:

$objWorksheet1 = $objPHPExcel->createSheet();
$objWorksheet1->setTitle('Another sheet');

Чтобы установить активный рабочий лист:

$objWorksheet1->setActiveSheetIndex($index);
...