PHPspreadsheet нарушает форматирование ячеек (формат ячейки + условный формат), просто открывая и сохраняя - PullRequest
0 голосов
/ 24 января 2020

Мне дали чью-то электронную таблицу, и я надеялся использовать PHPspreadsheet для автоматического заполнения некоторых значений.

Хотя это работает в принципе, я столкнулся с некоторыми проблемами с форматированием ячеек, я создал крошечную тестовую электронную таблицу, которая повторяет проблему .

Обнаружена проблема:

Ячейки получают стиль от

  1. , примененного непосредственно к ячейке
  2. применяется условное форматирование по правилу.

В исходном файле Excel (xlsx) эти две инструкции форматирования сливаются правильно.

Но если я просто открою файл с помощью PHPspreadsheet и сохраню его под новым именем Я, кажется, получаю «условное форматирование» без «ячейки, определяющей c форматирование».

Если я проверяю настройки форматирования ячейки, все это все еще там. Но в файле, написанном PHPspreadsheet, «условное форматирование», кажется, перезаписывает все «форматирование ячеек c».

Я приложил два изображения на случай, если это поможет объяснить это. пример

Вот сокращенная версия кода, который я использую только для открытия и сохранения. Я делаю это неправильно?

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Style;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load("Book1.xlsx");
$worksheet = $spreadsheet->getActiveSheet();

$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save("test_save.xlsx");

?>
...