更新.xlsx文件

时间:2015-01-14 20:51:36

标签: php phpexcel

我正在使用 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;
    }
}
?>

0 个答案:

没有答案