PhpSpreadsheet сохраняет только первый лист как CSVPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PhpSpreadsheet сохраняет только первый лист как CSV

Сообщение Anonymous »

Я пытался сохранить определенный лист из XLSX в формате CSV.
Сначала я попытался использовать функцию setActiveSheetIndexByName(), чтобы установить активный лист и вызвать метод записи \PhpOffice\PhpSpreadsheet\Writer\ CsV, но безуспешно. Каким-то образом писатель сохранил первый рабочий лист. Я пробовал индексировать по имени, по номеру, но разница немаленькая.
Теперь есть код, с которым я экспериментирую:

Код: Выделить всё

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");
$reader->setReadDataOnly(true);

$spreadsheet = $reader->load('infile.xlsx');
foreach($spreadsheet->getAllSheets() as $sheet)
{
$spreadsheet->setActiveSheetIndexByName($sheet->getTitle());
$activeSheet = $spreadsheet->getActiveSheet();
$title = $activeSheetgetTitle();
echo $title . PHP_EOL;
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->save($title . '.csv', 2);
}
Вывод консоли такой, как я ожидал: список имен электронных таблиц.
Вывод файловой системы почти такой, как я ожидал: множество файлов CSV с собственными именами.
/>Однако содержание то же самое. Я имею в виду постепенно то же содержание, что и первый рабочий лист. Независимо от того, изменю ли я активный лист.
Мой вопрос: как сохранить файл CSV на основе определенного листа?
ОБНОВЛЕНИЕ:
Если я изменю порядок листов в книге, я получу нужный мне CSV-файл. Но это всего лишь мгновенный прием, и он не сработает, когда мне придется работать с дополнительными листами.

Подробнее здесь: https://stackoverflow.com/questions/792 ... eet-as-csv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»