phpExcel:加载资源失败:net::ERR_CONNECTION_RESET
phpExcel : Failed to load resource: net::ERR_CONNECTION_RESET
我实际上使用 phpExcel 获取一个 excel 文件,我使用 <input type='file'>
从用户那里恢复该文件,然后我将此 excel 文件转换为 csv 文件。
我的脚本工作正常并且生成了 csv 文件。问题是在我的脚本完成后页面永远不会停止加载,我在控制台中收到此错误:Failed to load resource: net::ERR_CONNECTION_RESET
.
这是另一个问题,我还在我的脚本中使用了另一个对象来显示菜单,但菜单不显示是因为我使用的是 PHPExcel。
它们是我调用 PHPExcel 对象创建的代码:
<?php
///Get excelFile ///
if(isset($_FILES['excelFileCandidat']))
{
require_once dirname(__FILE__) . "/../../lib/ExcelCandidat/ExcelCandidat.class.php";
$file = new ExcelCandidat($_FILES['excelFileCandidat']);
$file->excelFileToCsv();
}
echo "<table width='100%'>";
echo "<tr>";
echo "<td>";
echo "Import new Excel File : ";
echo "<input type='file' name='excelFileCandidat' />";
echo "</td>";
echo "<td>";
echo "<input type='submit' name='submit' value='Send' />";
echo "</td>";
echo "</tr>";
echo "</table>";
?>
还有我的对象:
<?php
require_once dirname(__FILE__) . "/../PHPExcel/PHPExcel.php";
class ExcelCandidat
{
private $excelFile;
public function __construct($file)
{
$this->excelFile = $file;
}
public function excelFileToCsv()
{
set_time_limit(600);
if (!is_array($this->excelFile))
{
throw new Exception("STR_APPROCHECK_ERR");
}
$newFilename = 'csvCandidat';
$ext = strrchr($this->excelFile['name'], '.');
$isExcel = stripos($ext, '.xls') !== false;
if($isExcel)
{
ini_set('memory_limit', '256M');
$objPHPExcel = PHPExcel_IOFactory::load($this->excelFile['tmp_name']);
$worksheet = $objPHPExcel->getActiveSheet();
$writer = PHPExcel_IOFactory::createWriter($objPHPExcel , 'CSV');
$writer->setDelimiter(';');
$writer->setEnclosure('"');
$writer->setUseBOM(false);
$tmpName = dirname(__FILE__) . '/file/' . $newFilename . date('ymdHis') .'.csv';
$writer->save($tmpName);
unset($objPHPExcel, $writer);
}
}
}
?>
我发现问题来自文件 PHPExcel/Calculation.php.
中的库
您必须在 class PHPExcel_Calculation 的开头添加一行 private $saveThis;
并在构造函数(第 1722 行)中添加 line $this->saveThis = $this;
并在 destruct 函数中(第 1740 行)将 $this
替换为 $saveThis
我实际上使用 phpExcel 获取一个 excel 文件,我使用 <input type='file'>
从用户那里恢复该文件,然后我将此 excel 文件转换为 csv 文件。
我的脚本工作正常并且生成了 csv 文件。问题是在我的脚本完成后页面永远不会停止加载,我在控制台中收到此错误:Failed to load resource: net::ERR_CONNECTION_RESET
.
这是另一个问题,我还在我的脚本中使用了另一个对象来显示菜单,但菜单不显示是因为我使用的是 PHPExcel。
它们是我调用 PHPExcel 对象创建的代码:
<?php
///Get excelFile ///
if(isset($_FILES['excelFileCandidat']))
{
require_once dirname(__FILE__) . "/../../lib/ExcelCandidat/ExcelCandidat.class.php";
$file = new ExcelCandidat($_FILES['excelFileCandidat']);
$file->excelFileToCsv();
}
echo "<table width='100%'>";
echo "<tr>";
echo "<td>";
echo "Import new Excel File : ";
echo "<input type='file' name='excelFileCandidat' />";
echo "</td>";
echo "<td>";
echo "<input type='submit' name='submit' value='Send' />";
echo "</td>";
echo "</tr>";
echo "</table>";
?>
还有我的对象:
<?php
require_once dirname(__FILE__) . "/../PHPExcel/PHPExcel.php";
class ExcelCandidat
{
private $excelFile;
public function __construct($file)
{
$this->excelFile = $file;
}
public function excelFileToCsv()
{
set_time_limit(600);
if (!is_array($this->excelFile))
{
throw new Exception("STR_APPROCHECK_ERR");
}
$newFilename = 'csvCandidat';
$ext = strrchr($this->excelFile['name'], '.');
$isExcel = stripos($ext, '.xls') !== false;
if($isExcel)
{
ini_set('memory_limit', '256M');
$objPHPExcel = PHPExcel_IOFactory::load($this->excelFile['tmp_name']);
$worksheet = $objPHPExcel->getActiveSheet();
$writer = PHPExcel_IOFactory::createWriter($objPHPExcel , 'CSV');
$writer->setDelimiter(';');
$writer->setEnclosure('"');
$writer->setUseBOM(false);
$tmpName = dirname(__FILE__) . '/file/' . $newFilename . date('ymdHis') .'.csv';
$writer->save($tmpName);
unset($objPHPExcel, $writer);
}
}
}
?>
我发现问题来自文件 PHPExcel/Calculation.php.
中的库您必须在 class PHPExcel_Calculation 的开头添加一行 private $saveThis;
并在构造函数(第 1722 行)中添加 line $this->saveThis = $this;
并在 destruct 函数中(第 1740 行)将 $this
替换为 $saveThis