Все это есть выполняется в разных PHP-скриптах посредством разных запросов AJAX.
Код: Выделить всё
$inputfilepath = $_POST['dbgetpath'];
$filevar = './' . substr($inputfilepath, strrpos($inputfilepath, '\\' ) +1 ) . "\n" ; // outputs a string
$selectsheet = $_POST['sheetselect'];
echo $filevar . " " . gettype($filevar) . " " . $selectsheet; // for debugging
// Load PhpSpreadsheet library.
require_once('vendor/autoload.php');
// Import classes.
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
// Read the Excel file.
$reader = IOFactory::createReader("Xlsx");
$reader->setReadDataOnly(true);
$reader->setLoadSheetsOnly($selectsheet);
$spreadsheet = $reader->load($filevar, FILE_SKIP_EMPTY_LINES);
// Export to CSV file.
$writer = IOFactory::createWriter($spreadsheet, "Csv");
$writer->setDelimiter(','); // Set delimiter.
$fileproc = substr($filevar,0,-5); //remove extension from name string
$filename = $fileproc . ".csv";
$writer->save($filename); // save output
Если я закомментирую весь раздел электронной таблицы PHP после эха, скрипт сработает и выведет строку как следует:
"Результат: ./myexceldoc.xlsx строка Sheet1 string."
Я ожидал, что PHPspreadsheet выдаст файл .csv с тем же именем, что и исходный .xlsx, но все, что я получаю, это журнал в консоли для запроса и никакого вывода. Даже эхо прерывается, когда остальная часть сценария активна, хотя его все равно можно найти в консоли. Никаких ошибок.
Подробнее здесь: https://stackoverflow.com/questions/791 ... x-filepath
Мобильная версия