我正在使用 PHPExcel_1.8.0。 我有很多输入文件,我想读取每个文件并将它们运行时保存到单个输出文件中。 我试过但是输出文件会覆盖每个文件。 让我简单解释一下: 我有5个文件,有5个不同员工的记录,我想通过php将这些记录放在一个文件中。我设置了一个循环,因此输出文件仅保存由于覆盖而导致的最后一个员工记录。 我想在php中附加一些东西。 这是我的代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
date_default_timezone_set('Europe/London');
require_once 'index.php';
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
$dirlist = dirToArray('input');
foreach ($dirlist AS $value) {
$info = new SplFileInfo($value);
$vFileExtension = $info->getExtension();
if ($vFileExtension == 'xlsx' || $vFileExtension == 'xls') {
$inputFileName = "input/".$value;
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($inputFileName);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
$objPHPExcel = new PHPExcel();
$i = 1;
foreach ($sheetData AS $key => $row) {
foreach ($row AS $index => $rec) {
$objPHPExcel->getActiveSheet()->setCellValue($index . $i, $newtext);
}
$i++;
}
$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
$objDrawing->setName('PHPExcel logo');
$objDrawing->setPath('./images/phpexcel_logo.gif');
$objDrawing->setHeight(36);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel->getActiveSheet()->setTitle('Data');
$objPHPExcel->setActiveSheetIndex(0);
$callStartTime = microtime(true);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("output/result.xlsx");
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
$callStartTime = microtime(true);
echo $value . ' has been generated!' . EOL;
}
}
?>