Наше программное обеспечение предназначено для отслеживания рабочих часов, поэтому нам нужно генерировать файлы Excel, которые включают отрицательные значения времени. Так строго говоря, базовая дата 0-«1899-12-31»: Excel рассматривает любое значение от 0 до 1 как чисто время времени. Попытка отобразить 0, используя маску формата даты, такую как «yyyy-mm-dd», приведет к неверной дате, такой как «1900-01-00», а не «1899-12-31». Однако при использовании маски формата времени, например, «HH: MM: SS», она появится как '00: 00: 00' (полночь). Значения меньше 0 являются недействительными в качестве дат или времени, поэтому отрицательное значение в ячейке с датой «Маска формата номеров» будет отображаться как «###########» в Excel.
open/libreoffice и гнакерные. Тем не менее, рекомендуется не полагаться на это поведение при работе с PHPSPreadSheet.
Код: Выделить всё
use \PhpOffice\PhpSpreadsheet\Shared\Date as Shared_Date;
Shared_Date::setExcelCalendar(Shared_Date::CALENDAR_MAC_1904);
Недавно мы обновили до версии 2.2, и эта конфигурация больше не работает.
Есть ли альтернативное решение?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... preadsheet