PHPПрограммисту
SimpleXLSXGen быстрый экспорт в XLSX
Запилил небольшой, но очень полезный класс для экспорта в Excel
$books = [
['ISBN', 'title', 'author', 'publisher', 'ctry' ],
[618260307, 'The Hobbit', 'J. R. R. Tolkien', 'Houghton Mifflin', 'USA'],
[908606664, 'Slinky Malinki', 'Lynley Dodd', 'Mallinson Rendel', 'NZ']
];
$xlsx = SimpleXLSXGen::fromArray( $books );
$xlsx->saveAs('books.xlsx');
Создание Excel файлов в PHP ещё никогда не было таким простым.
Как можно разбить(отфоматировать) по табам эксель файл с помощью Вашей библиотеки?
Вы путаете CSV файлы и XLSX
добрый день.
при генерации и скачивании с использованием SimpleXLSXGen достаточно большого файла (12МБ 147 столбцов / 35901 строк) все отрабатывает без ошибок, но при открытии скачанного файла ексель (офис 2016) выдает сообщение –
“Ошибка в части содержимого в книге “Название книги.xlsm”. Выполнить попытку восстановления? Если вы доверяете источнику, из которого была получена книга, нажмите кнопку “да”.”
после восстановления –
“Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.
Восстановленный компонент: Компонент /xl/worksheets/sheet1.xml. ”
или
“Excel удалось открыть файл, восстановив или удалив нечитаемое содержимое.
Восстановленный компонент: Компонент /xl/worksheets/sheet1.xml. ”
после этого вроде бы все ок, хотя полной уверенности нет, проверить полностью весь файл нереально, очень много данных, но все строки и столбцы вроде бы на месте,
при этом если уменьшить объем данных, убрать примерно 2-3 тысячи сорок или 5-10 столбцов (в зависимости от объема содержимого), то файл после скачивания открывается без проблем. это не зависит от конкретных строк или столбцов я пробовал убирать их в различных комбинациях, конкретные строки и столбцы не виноваты.
вы не могли бы посоветовать в какую сторону копать?
с уважением,
Николай.
Здравствуйте!
Выполняю запрос вида-“SELECT TO_CHAR(DATE, ‘DD.MM.YYYY’) AS Дата, TO_CHAR(DATE, ‘HH24:MI:SS’) AS Время FROM…
Наполняю массив $result и использую Ваш класс-
$xlsx = Shuchkin\SimpleXLSXGen::fromArray($result);
$xlsx->saveAs($file);
Создаётся файл *.xlsx, в котором поле “Время” выглядит, как [часы : минуты] без секунд, хотя секунды в ячейке есть, если стать на нее.
Как добиться отображения секунд без ручного выбора формата ячеек?
см. Raw String
https://github.com/shuchkin/simplexlsxgen#data-types
Raw String, подразумевает подачу на вход класса данных типа DATETIME (‘dd.mm.yyyy hh24:mi:ss’) и так оно действительно работает правильно. Но мне необходимо подавать на вход класса разбитый на дату и время массив. Отдельный столбец для даты и отдельный столбец время и в этом случае, в столбце время не видно секунд.
Там этого не подразумевается, Raw String означает – это простая строка, не включать определение типа