Доброго дня, есть файл .xlsx на ~ 17mb и 92000 строк, нужно его конвертировать в .csv, функция (под спойлером) делает это уже 40 минут и пока еще не конец, где то за час управится, возможно потому, что я делаю это на стареньком ноуте с 8Gb памяти? На реальном сервере будет быстрее? Возможно сам код поправить нужно?
Функцияfunction bigExel2csv($filesXlsx)
{
// Read the Excel file.
$reader = ReaderEntityFactory::createXLSXReader();
try {
$reader->open('attach/' . $filesXlsx);
} catch (IOException $e) {
}
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
// do stuff with the row
$cells = $row->getCells();
}
}
$info = pathinfo($filesXlsx);
//$callStartTime = microtime(true);
//$format = 'Y-m-d';
// Export to CSV file.
$writer = WriterEntityFactory::createCSVWriter();
try {
$writer->openToFile(safe_file("files/" . $info['filename'] . '.csv'));
} catch (IOException $e) {
}
$writer->setFieldDelimiter(";");
foreach ($reader->getSheetIterator() as $sheetIndex => $sheet) {
//Add sheets in the new file, as we read new sheets in the existing one
/* if ($sheetIndex !== 1) {
$writer->addNewSheetAndMakeItCurrent();
} */
// Set delimiter.
foreach ($sheet->getRowIterator() as $row) {
// ... and copy each row into the new spreadsheet
$writer->addRow($row);
}
}
}