Подтвердить что ты не робот

Каков наилучший способ создания файла XLS в PHP?

В настоящее время я пытаюсь найти лучший способ создать файл .xls с PHP. Мне кажется, что все, что мне нужно сделать, это изменить тип содержимого заголовка на "application/vnd.ms-excel", а затем вывести данные в формате, разделенном запятой. Это лучший способ сделать это?

Спасибо за любую помощь!
Метрополис

ИЗМЕНИТЬ

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

Посмотрев на PHPExcel, это лучшее решение для этой проблемы. Я ценю все ваши ответы, и я бы дал три правильных ответа, если бы смог. Но голосование должно быть выполнено:)

4b9b3361

Ответ 1

Зависит от необходимости файла CSV или файла XLS. Файл XLS может включать в себя информацию о форматировании для ячеек, а также блокировку строк и столбцов, защиту и другие функции, которые невозможны в файле CSV. Кроме того, имейте в виду, что Excel не правильно поддерживает кодированное содержимое UTF-8 при открытии файлов CSV.

Если вы хотите отформатированный XLS файл, вам нужна библиотека, такая как PhpSpreadsheet, которая может записать файл с этим форматированием, или COM, если сервер работает в Windows с установленным Excel.

Ответ 2

его довольно легко, потому что excel поддерживает html-код. Таким образом, вам просто нужно добавить заголовок в верхней части файла.. а затем эхом html-код!

header ( "Content-type: application/vnd.ms-excel" );
header ( "Content-Disposition: attachment; filename=foo_bar.xls" );
echo "<table><tr><th>Header1</th></tr><tr><td>value1</td></tr></table>";

это приведет к созданию файла excel!

Ответ 3

Вы можете использовать один из XML-форматов, который понимает Microsoft Office.

Подробнее см. Microsoft Сайт разработчика OpenXML.

Существует библиотека под названием PHPExcel, которую вы можете посмотреть, чтобы помочь вам в этом.

Конечно, все это зависит от того, что вы подразумеваете под этим:

"получите максимальную отдачу от этого формата файла

Если у вас просто простые таблицы без форматирования, файлы CSV могут быть вам нужны; однако, если вы хотите использовать дополнительные функции электронной таблицы, я бы рекомендовал взглянуть на OpenXML.

Ответ 4

Вы можете просто выводить html и новые версии Excel, которые будут читать. Я не знаю, сколько форматирования вы можете с ним сделать, хотя.

Если вам нужны данные, форматирование или формулы, у меня был успех с PHPExcel.

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

Ответ 6

Отказ от ответственности: я работаю над "Ожидаемым поведением", компанией, которая разработала DocRaptor.

Тем не менее, вы можете использовать DocRaptor для генерации файлов XLS из HTML. DocRaptor - это проект Ruby on Rails, но вы можете использовать его с PHP. Здесь наш пример PHP:

Пример DocRaptor PHP

Здесь другая ссылка на домашнюю страницу DocRaptor:

HTML в Excel с DocRaptor

Ответ 8

Да, это один из возможных способов - если вам нужен простой CSV файл, который откроется в Ms Excel.

Если вам нужен богатый XLS файл, существует множество опций, включая использование сторонних DLL файлов, таких как "CarlosAg.ExcelXmlWriter.dll" для создания файла XLS. Вы можете найти примеры использования этой DLL в сети или Посмотрите здесь

Ответ 9

Вы можете начать использовать эти файлы. Он создаст файл excel и поможет вам загрузить его. Скачать код Souce или демо-версию здесь: http://purpledesign.in/blog/to-generate-excel-using-php/

Вы можете добавить такие строки в

01-простая загрузка-xlsx.php

$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Roll')
            ->setCellValue('B1', 'Name')
            ->setCellValue('C1', 'Total Classes')
            ->setCellValue('D1', 'Class Attended')
        ->setCellValue('E1', 'Percentage');

Вы можете печатать данные из такой базы данных, используя цикл while.

$i=2;   
while ($row = $database->fetch_array($result)) 
 { 

       $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$i, $row[0])
            ->setCellValue('B'.$i, $row[1])
            ->setCellValue('C'.$i, $row[2])
            ->setCellValue('D'.$i, $total)
        ->setCellValue('E'.$i, round(($row[2]/$total)*100));
          $i++;
 }