Перейти к содержимому

SimpleXLSXGen быстрый экспорт в XLSX

Запилил небольшой, но очень полезный класс для экспорта в Excel

SimpleXLSXGen

$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 ещё никогда не было таким простым.

17 комментариев для “SimpleXLSXGen быстрый экспорт в XLSX”

  1. Как можно разбить(отфоматировать) по табам эксель файл с помощью Вашей библиотеки?

  2. добрый день.
    при генерации и скачивании с использованием SimpleXLSXGen достаточно большого файла (12МБ 147 столбцов / 35901 строк) все отрабатывает без ошибок, но при открытии скачанного файла ексель (офис 2016) выдает сообщение –

    “Ошибка в части содержимого в книге “Название книги.xlsm”. Выполнить попытку восстановления? Если вы доверяете источнику, из которого была получена книга, нажмите кнопку “да”.”

    после восстановления –
    “Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.
    Восстановленный компонент: Компонент /xl/worksheets/sheet1.xml. ”
    или
    “Excel удалось открыть файл, восстановив или удалив нечитаемое содержимое.
    Восстановленный компонент: Компонент /xl/worksheets/sheet1.xml. ”

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

    при этом если уменьшить объем данных, убрать примерно 2-3 тысячи сорок или 5-10 столбцов (в зависимости от объема содержимого), то файл после скачивания открывается без проблем. это не зависит от конкретных строк или столбцов я пробовал убирать их в различных комбинациях, конкретные строки и столбцы не виноваты.

    вы не могли бы посоветовать в какую сторону копать?

    с уважением,
    Николай.

  3. Здравствуйте!
    Выполняю запрос вида-“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, в котором поле “Время” выглядит, как [часы : минуты] без секунд, хотя секунды в ячейке есть, если стать на нее.
    Как добиться отображения секунд без ручного выбора формата ячеек?

  4. Raw String, подразумевает подачу на вход класса данных типа DATETIME (‘dd.mm.yyyy hh24:mi:ss’) и так оно действительно работает правильно. Но мне необходимо подавать на вход класса разбитый на дату и время массив. Отдельный столбец для даты и отдельный столбец время и в этом случае, в столбце время не видно секунд.

  5. Весь моск уже поломал.
    Делаю по образцу. В итоге получаю вместо формулы текст 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’]
    ];

    Как добиться вставки именно формул?

  6. saveAs работает, а downloadAs почему-то вместо скачивание файла выбрасывает результат в браузер. Причем на другом сайте аналогичная версия библиотеки downloadAs выполняет коррктно

  7. К сожалению, не разобрался, как сделать два листа в книге… Не подскажете ли?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *