Запилил небольшой, но очень полезный класс для экспорта в 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 означает – это простая строка, не включать определение типа
А кириллица не поддерживается чтоль?
UTF-8
Весь моск уже поломал.
Делаю по образцу. В итоге получаю вместо формулы текст SUM(B1:B2).
Просто скопировал уже себе
[
[‘Integer’, 123],
[‘Float’, 12.35],
[‘Percent’, ‘12%’],
[‘Currency $’, ‘$500.67’],
[‘Currency €’, ‘200 €’],
[‘Currency ₽’, ‘1200.30 ₽’],
[‘Currency (other)’, ‘500’],
[‘Datetime’, ‘2020-05-20 02:38:00’],
[‘Date’, ‘2020-05-20’],
[‘Time’, ’02:38:00′],
[‘Datetime PHP’, new DateTime(‘2021-02-06 21:07:00’)],
[‘String’, ‘Long UTF-8 String in autoresized column’],
[‘Formula’, ‘SUM(B1:B2)’],
[‘Hyperlink’, ‘https://github.com/shuchkin/simplexlsxgen’],
[‘Hyperlink + Anchor’, ‘SimpleXLSXGen‘],
[‘Internal link’, ‘Go to second page‘],
[‘RAW string’, “\0” . ‘2020-10-04 16:02:00’]
];
Как добиться вставки именно формул?
Там тег(!) <f v=”190″>SUM(B1:B5)</f>
Где 190 это уже посчитанное значение ячейки.
saveAs работает, а downloadAs почему-то вместо скачивание файла выбрасывает результат в браузер. Причем на другом сайте аналогичная версия библиотеки downloadAs выполняет коррктно
не забудьте exit()
А как делать пустые ячейки?
null
К сожалению, не разобрался, как сделать два листа в книге… Не подскажете ли?
addSheet
https://github.com/shuchkin/simplexlsxgen#more-examples
Добрый день!
при открытии сгенерированного файла в микрософт эксель выдает ошибку – Ошибка в части содержимого в книге filename.xlsx. Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку “Да”
после восстановления файл открывается, но хотелось бы понять в чем проблема, почему файл содержит ошибку?
Благодарю за помощь!
добавьте exit() после downloadAs, чтобы лишние пробелы не попадали