我试图打开xlsx文件,修改它并用其他名称保存。它本来应该很简单,但他没有工作。
文件是292 Ko,只有1个单元格的空文件
这是我的代码:
<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
set_include_path('./lib/PHPExcel/Classes/');
require_once('PHPExcel/IOFactory.php');
ini_set('memory_limit','128M');
$toModifyPath = "./toModify.xlsx";
$outPath = "./out.xlsx";
$fileType = "Excel2007";
echo '<p>Starting...</p>';
//Open
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader->load($toModifyPath) //<-- THIS LINE IS BLOCKING WITH NO ERROR
echo '<p>Opened</p>';
//Starting from here, it's working
//Modify
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('C6', '4')->setCellValue('C7', '5')->setCellValue('C8', '6')->setCellValue('C9', '7');
echo '<p>Modifed</p>';
//Save
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($outPath);
echo '<p>Saved</p>';
echo '<p>Done !</p>';
?>
输出是&#34;开始......&#34;所以行$objPHPExcel = $objReader->load($toModifyPath)
阻塞没有错误,我不明白为什么。任何人都有线索?
PHP版本5.2.3 PHPExcel 1.8
答案 0 :(得分:0)
如果您要加载(或&#34;阅读&#34;)现有的Excel文件,请使用以下代码:
解决方案1:您必须使用特定的PHPExcel Reader
<?php
require_once dirname(__FILE__).'/phpexcel/Classes/PHPExcel.php';
$file_name = 'excel_file.xlsx';
// Choose a specific Excel reader
$objReader = new PHPExcel_Reader_Excel5();
// $objReader = new PHPExcel_Reader_Excel2007();
// $objReader = new PHPExcel_Reader_Excel2003XML();
// $objReader = new PHPExcel_Reader_OOCalc();
// $objReader = new PHPExcel_Reader_SYLK();
// $objReader = new PHPExcel_Reader_Gnumeric();
// $objReader = new PHPExcel_Reader_CSV();
$objPHPExcel = $objReader->load($file_name);
?>
解决方案2:您可以使用此代码加载任何PHP Excel文件
<?php
require_once dirname(__FILE__).'/phpexcel/Classes/PHPExcel.php';
require_once dirname(__FILE__).'/phpexcel/IOFactory.php';
$file_name = 'excel_file.xls';
$objPHPExcel = PHPExcel_IOFactory::load($file_name);
?>