我正在將excel轉換爲csv。而我目前面臨的一個問題是轉換Excel文件時帶有15k條記錄,平均需要45到50秒來計算文件的行數和列數。使用PHPExcel將excel的批量記錄轉換爲csv
如果我使用50k記錄然後系統崩潰。在這裏,我沒有做任何csv轉換工作,是的,我只做了行和列計數。有沒有解決問題的方法或任何其他方法?您的建議非常感謝。
require_once('../PHPExcel/Classes/PHPExcel.php');
$start = time();
$infile = 'IMPORT_DATA_15000.xlsx';
$outfile = 'csv/15000.csv';
ini_set('memory_limit', -1);
//Usage:
convertExcel2CSV($infile);
echo 'Time: ' . (time() - $start);
die;
function convertExcel2CSV($infile)
{
// Read your Excel workbook
try
{
$inputFileType = PHPExcel_IOFactory::identify($infile);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($infile);
} catch (Exception $e)
{
die('Error loading file "' . pathinfo($infile, PATHINFO_BASENAME) . '": ' . $e->getMessage());
}
// Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
echo $highestColumn;
echo "====";
echo $highestRow;
}
OUTPUT:
AMK
====
15000
對於系統崩潰,你是什麼意思?是否有任何特定的錯誤消息? – codedge
不,我不能得到任何消息,因爲文件有很多記錄,所以系統關閉,不完成我的過程。 –
像codedge說,你的意思是'系統崩潰'?在產出之前它是否停止了?你有沒有檢查你的日誌?它會耗盡內存嗎? –