Php создает файл Excel

Обновлено: 20.11.2024

Приложения базы данных, написанные на php, часто нуждаются в экспорте данных для создания отчетов. Популярный формат экспорта — Excel. Excel — это электронная таблица, в которой данные отображаются в виде сетки. Сам Excel является собственным форматом Microsoft. Для php доступно множество библиотек, таких как грушевый пакет Spreadsheet_Excel_Writer и т. д., которые могут выполнять эту работу. Однако эти библиотеки должны быть включены в приложение, и иногда их сложно установить.

Если нужен только простой экспорт в формате сетки, есть решения получше, чем Excel. Например csv и tsv. Это очень простые форматы, которые можно создать с помощью небольшого кода, и они совместимы с большинством приложений для работы с электронными таблицами, такими как openoffice или ms-excel. Давайте рассмотрим каждый из них.

1. CSV – значение, разделенное запятыми

Оба вышеупомянутых метода являются эффективными способами представления табличных данных, выводимых из базы данных. Оба формата очень портативны. Есть еще несколько правил записи CSV-файлов в правильном формате, которые можно прочитать в статье в Википедии на эту тему

2. TSV – формат значений, разделенных табуляцией

В приведенном выше примере мы записываем табличные данные или, скажем, данные из таблицы базы данных в файл построчно и поле за полем. Его очень просто понять и прочитать, и в то же время он очень портативен для экспорта. Это был не более чем простой файл с разделителями табуляции (tsv: значения, разделенные табуляцией), которые Ms-excel и openoffice удобно читать. И да, откройте его в Excel и сохраните в любом другом формате, который вы хотите. Имя файла может быть «data.tsv», если хотите.

Заключение

Вышеупомянутые форматы имеют много преимуществ по сравнению с закрытыми форматами, такими как Excel. Эти форматы стандартны, переносимы и широко поддерживаются. Их можно использовать для импорта непосредственно в базы данных, такие как mysql.

Если нет необходимости создавать сложное форматирование и встраивание мультимедиа, формат csv/tsv должен работать хорошо. Однако, если вам нужно создать файлы xlsx, воспользуйтесь библиотекой php под названием phpexcel из codeplex.

Технический энтузиаст, блоггер, поклонник Linux и разработчик программного обеспечения. Пишет о компьютерном оборудовании, Linux и программном обеспечении с открытым исходным кодом, а также о программировании на Python, Php и Javascript. С ним можно связаться по адресу [email protected] .

6 мыслей о том, как создавать файлы Excel в формате php с форматами csv и tsv

Или вы можете использовать встроенную в PHP функцию fputcsv

Файл Excel создается и открывается в Linux, но в Windows пишет, что он поврежден.

Все предложения, пожалуйста.

Большое спасибо, это очень полезно :)

Привет
Это всего лишь трюк. Но отличная информация. Но это не решит мою проблему. Я хочу экспортировать свои данные в файл XLS, а не в CSV/TSV.

Добро пожаловать в краткий учебник и пример того, как создавать электронные таблицы Excel с помощью PHP. Нужно создать отчет в электронной таблице Excel? Да, на самом деле мы можем сделать это довольно легко.

  • требовать "vendor/autoload.php";
  • используйте PhpOffice\PhpSpreadsheet\Spreadsheet;
  • используйте PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  • $spreadsheet = новая таблица();
  • $sheet = $spreadsheet->getActiveSheet();
  • $sheet->setCellValue("A1", "Hello World!");
  • $writer = новый Xlsx($spreadsheet);
  • $writer->save("demo.xlsx");

Это основные сведения, но давайте рассмотрим еще несколько примеров в этом руководстве. Читайте дальше!

ⓘ Я включил zip-файл со всем примером кода в начале этого руководства, поэтому вам не нужно копировать и вставлять все… Или если вы просто хотите сразу погрузиться.

БЫСТРЫЕ СЛАЙДЫ

СОДЕРЖАНИЕ

СКАЧАТЬ И ПРИМЕЧАНИЯ

Во-первых, вот ссылка для скачивания исходного кода примера, как и было обещано.

БЫСТРЫЕ ЗАМЕЧАНИЯ

  • Копия PHPSpreadsheet не включена в ZIP-файл. Пожалуйста, загрузите последнюю версию с их официального сайта.

СКАЧАТЬ ПРИМЕР КОДА

Нажмите здесь, чтобы загрузить исходный код. Я выпустил его под лицензией MIT, так что не стесняйтесь строить на его основе или использовать в своем собственном проекте.

СОЗДАНИЕ ТАБЛИЦ XLSX В PHP

Хорошо, теперь давайте рассмотрим пример создания электронной таблицы Excel в PHP.

ШАГ 1) СКАЧАТЬ PHPSPREADSHEET

  • PHP не может создавать файлы Excel изначально, нам нужно использовать стороннюю библиотеку под названием PHPSpreadsheet.
  • Один из самых простых способов получить PHPSpreadsheet – использовать менеджер пакетов Composer. Загрузить и установить его непросто, но это единоразовое усилие… Кроме того, Composer предлагает массу других пакетов.
  • После установки Composer запустите командную строку, перейдите в папку проекта и запустите composer require phpoffice/phpspreadsheet . Composer автоматически загрузит последнюю версию в папку поставщика/.
  • Дополнительную информацию см. в официальной документации PHPSpreadsheet.

ШАГ 2) ПРОСТАЯ ТАБЛИЦА PHP

  • (A) Загрузите и используйте библиотеку PHPSpreadsheet.
  • (B) Создайте новую таблицу.
  • (C и D) Добавьте рабочие листы и заполните ячейки.
  • (Д) Сохраните или выведите электронную таблицу.

ДОПОЛНИТЕЛЬНЫЙ МАССИВ ДЛЯ ТАБЛИЦЫ

Что касается записи массива в электронную таблицу, это действительно зависит от того, как форматируется массив. Это всего лишь быстрый пример того, как двумерный массив можно «преобразовать» в электронную таблицу Excel.

ВАРИАНТ) CSV-ФАЙЛЫ

  • fopen(FILE, MODE) для создания нового CSV-файла.
  • fputcsv(FILE, LINE), чтобы поместить строку в CSV-файл. Обратите внимание, что LINE — это массив.
  • fclose(FILE), чтобы правильно закрыть и записать CSV-файл.

Но, конечно же, CSV — это чистые данные: никаких формул, никаких настроек цвета ячеек, никаких размеров столбцов и всего такого причудливого.

ПОЛЕЗНЫЕ ИНФОРМАЦИИ И ССЫЛКИ

Наконец, вот несколько небольших дополнений, которые могут быть вам полезны.

ПОЛЕЗНЫЕ ССЫЛКИ И ССЫЛКИ

  • Вот обширный список часто используемых формул Excel, которые могут оказаться полезными.

ОБУЧАЮЩЕЕ ВИДЕО

ИНФОГРАФИЧЕСКАЯ Шпаргалка

КОНЕЦ

Спасибо, что прочитали, и мы подошли к концу этого краткого руководства. Я надеюсь, что это помогло вам создать файлы Excel на PHP для вашего проекта, и если у вас есть чем поделиться с этим руководством, не стесняйтесь комментировать ниже. Удачи и удачного кодирования!

Spreadsheet_Excel_Writer – это инструмент для создания файлов Excel без использования COM-компонентов. Файлы, созданные текущей версией Spreadsheet_Excel_Writer, соответствуют формату Excel 5 (BIFF5), поэтому должны быть доступны все функции до этой версии Excel (но не выше).

Самое распространенное использование Spreadsheet_Excel_Writer — вывод больших (или не очень) объемов информации в виде электронной таблицы, с которой легко работать с помощью широко распространенной программы для работы с электронными таблицами, такой как Excel (или OpenOffice).< /p>

Итак, давайте перейдем к делу и посмотрим, как это делается:

Типичное использование

// Создание книги
$workbook = new Spreadsheet_Excel_Writer ();

// Фактические данные
$worksheet -> write ( 0 , 0 , 'Name' );
$worksheet -> write ( 0 , 1 , 'Возраст' );
$worksheet -> write ( 1 , 0 , 'Джон Смит' );
$worksheet -> запись ( 1 , 1 , 30 );
$worksheet -> write ( 2 , 0 , 'Иоганн Шмидт' );
$worksheet -> запись ( 2 , 1 , 31 );
$worksheet -> write ( 3 , 0 , 'Хуан Эррера' );
$worksheet -> запись ( 3 , 1 , 32 );

// Отправим файл
$workbook -> close ();
?>

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

Еще одна важная вещь, которую вы должны иметь в виду при программировании с помощью Spreadsheet_Excel_Writer, — это знак амперсанда (&), который появляется при создании нашего рабочего листа. Этот амперсанд означает, что мы ссылаемся на объект Worksheet, а не копируем его. Если вы не знаете, что это значит, не волнуйтесь, все, что вам нужно помнить, это всегда использовать амперсанд при вызове addWorksheet() для создания рабочего листа или addFormat() для создания формата.

Возможно, вы также заметили следующую строку:

Это означает, что мы отправляем нашу электронную таблицу в браузер. Но что, если мы просто хотим сохранить электронную таблицу на нашем компьютере? Что ж, вам просто нужно опустить эту строку и указать допустимый путь к файлу конструктору рабочей книги.

Например, если бы мы хотели сохранить ту же электронную таблицу, которую мы создали в нашем первом примере, в файл с именем "test.xls", мы бы сделали это следующим образом:

Сохранение в обычный файл

// Здесь указываем путь к нашему файлу
$workbook = new Spreadsheet_Excel_Writer('test.xls');

$worksheet -> write ( 0 , 0 , 'Имя' );
$worksheet -> write ( 0 , 1 , 'Возраст' );
$worksheet -> write ( 1 , 0 , 'Джон Смит' );
$worksheet -> запись ( 1 , 1 , 30 );
$worksheet -> write ( 2 , 0 , 'Иоганн Шмидт' );
$worksheet -> запись ( 2 , 1 , 31 );
$worksheet -> write ( 3 , 0 , 'Хуан Эррера' );
$worksheet -> запись ( 3 , 1 , 32 );

// Нам все еще нужно явно закрыть книгу
$workbook -> close ();
?>

Если вы хотите узнать о форматировании (шрифты, цвет ячеек, выравнивание текста и т. д.) с помощью Spreadsheet_Excel_Writer, вы можете ознакомиться с учебным пособием по форматированию здесь.

Итак, вы хотите создать файл Excel с помощью PHP или уже имеете файл Excel и хотите изменить его с помощью PHP.

Давайте углубимся в это

Что вы узнаете из этой статьи?

  1. Создайте новый файл Excel с помощью PHP.
  2. Вставьте данные в файл Excel с помощью PHP.
  3. Обновите существующий файл Excel с помощью PHP.

PHPSpreadsheet — это библиотека PHP для чтения и записи файлов Excel. Это позволяет нам работать с различными форматами файлов электронных таблиц, такими как Excel и LibreOffice Calc. Он очень прост в использовании и хорошо документирован. PHPSpreadsheet — это библиотека PHP с открытым исходным кодом, доступная на github.

Вы можете установить эту библиотеку через composer. Версия PHP должна быть выше 7.2 или выше. Выполните следующую команду в корне каталога вашего проекта.

Создайте новый файл Excel с помощью PHP

Чтобы создать файл Excel с помощью PHP, выполните следующие действия:

Файл автозагрузки из папки поставщика фактически связывает ваш проект с папкой поставщика, поэтому, если вы уже используете какой-либо PHP-фреймворк, вам не нужно этого делать, и теперь вам нужно просто использовать необходимые классы из библиотеки.

Поскольку нам нужны электронные таблицы в нашем файле Excel, просто используйте здесь класс электронных таблиц из библиотеки PhpSpreadsheet. Чтобы создать файл excel с помощью PHP, нам также нужно использовать класс Xlsx.

Затем сначала подготовьте электронную таблицу, а затем добавьте ее в файл Excel с помощью класса Xlsx. Последний шаг — просто сохранить файл.

Вставить данные в файл Excel

Поздравляем! Вы успешно создали файл Excel с помощью PHP. Теперь давайте вставим некоторые данные в файл Excel, используя библиотеку электронных таблиц PHP.

Вы можете установить значение ячейки, используя адрес ячейки, например A21, где A – это столбец, а 21-й – строка. Вы также можете установить формулу в ячейку. Ниже приведен еще один способ вставки данных в файл Excel с использованием PHP.

Здесь getCell() получит ячейку с заданным адресом, а затем присвоит ей заданное значение с помощью setValue(). Но если ячейки с таким адресом не существует, то он ее создаст. Если вы хотите избежать такого поведения по умолчанию, вы можете передать FALSE в качестве второго параметра функции getCell(). Он вернет значение null, если ячейка не существует, а не создаст ее.

Изменить существующий файл Excel с помощью PHP

Если вы хотите продолжать обновлять свой файл Excel новыми записями, добавленными в базу данных, мы можем использовать что-то вроде ниже.

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

Второй шаг — создать средство записи и передать приведенную выше измененную электронную таблицу в качестве первого параметра. Затем просто сохраните файл с помощью этого средства записи.

Читайте также: