Преобразование HTML-файла в Excel с помощью PHPExcel

Мне нужно преобразовать html-файл (test.html), чтобы преуспеть в PHPExcel

myhtml файл text.html, он сохраняет test.php, но содержит html

пожалуйста, подумайте, как реализовать в этом


person Hiren Patel    schedule 18.09.2014    source источник
comment
Начните с чтения документации PHPExcel и просмотра некоторых файлов примеров в папке /Examples.   -  person Mark Baker    schedule 18.09.2014


Ответы (2)


Вы можете просто прочитать предоставленную документацию, но:

$inputFileType = 'HTML';
$inputFileName = './myHtmlFile.html';
$outputFileType = 'Excel2007';
$outputFileName = './myExcelFile.xlsx';

$objPHPExcelReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objPHPExcelReader->load($inputFileName);

$objPHPExcelWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,$outputFileType);
$objPHPExcel = $objPHPExcelWriter->save($outputFileName);
person Mark Baker    schedule 18.09.2014
comment
// Читаем содержимое файла в класс PHPExcel Reader $reader = new PHPExcel_Reader_HTML(); $objPHPExcel = $reader-›load('/var/www/html/edusec_temp/bapucollege/protected/views/report/test.php'); Сгенерируйте эту ошибку: в этой строке она показывает мне ошибку, например: DOMDocument::loadHTMLFile() ожидает ровно 1 параметр, 2 заданных /var/www/html/edusec_temp/demo/protected/extensions/phpexcel/vendor/Classes/PHPExcel/ Читатель/HTML.php(427) - person Hiren Patel; 19.09.2014
comment
Либо обновите свой PHP до последней версии (5.4 или 5.5), либо убедитесь, что у вас есть последний код разработки из github, потому что эта ошибка (рабочий элемент GH-384) исправлено в PHPExcel. - person Mark Baker; 19.09.2014
comment
да, я загружаю последний код PHPExcel в fithub, и моя версия php 5.3.10, и мой другой вопрос: тип входного файла поддерживается php? потому что мой html-код включен в файл php - person Hiren Patel; 19.09.2014
comment
Если у вас есть последний код ветки разработки github, тогда строка 427 из Classes/PHPE‌​xcel/Reader/HTML.php должна быть if ((version_compare(PHP_VERSION, '5.4.0') >= 0) && defined(LIBXML_DTDLOAD)) {.... вы получите указанное вами сообщение об ошибке, только если вы не используете последний код ветки разработки github. - person Mark Baker; 19.09.2014
comment
Хорошо, Марк Бейкер, и еще один мой вопрос: мой HTML-код доступен в php-файле. Поддерживаете ли вы $inputFileType='PHP'? - person Hiren Patel; 19.09.2014
comment
Нет, файлы с расширением PHP не являются допустимым форматом электронной таблицы.... PHP - это язык программирования. PHP-скрипт может генерировать вывод, который является допустимым форматом электронной таблицы, но возможность принимать входной тип PHP, содержащий любой произвольный код php, и автоматически преобразовывать его во что-то, напоминающее электронную таблицу, является невыполнимым упражнением. - person Mark Baker; 19.09.2014
comment
Если ваш PHP генерирует HTML-таблицу в html-файле, то PHPExcel может читать этот файл как таблицу электронной таблицы... альтернативно модифицируйте свой PHP-код, чтобы он использовал PHPExcel для создания файла Excel напрямую, а не для генерации HTML - person Mark Baker; 19.09.2014
comment
Зачем читать HTML, если он не поддерживает css и картинки? - person Charaf JRA; 24.11.2015
comment
@Charafjra - ПОТОМУ ЧТО ЭТО ВСЕ, ЧТО Я НАПИСАЛ ЭТО СДЕЛАТЬ .... это поддержка основных поддельных файлов Excel, которые генерируются некоторыми сценариями, которые представляют собой немногим больше, чем таблица html .... если вы хотите пожаловаться, то потратьте несколько часов в день собственного времени в течение десяти лет разработки/поддержки программного обеспечения с открытым исходным кодом без вознаграждения; если вы хотите быть конструктивным, отправьте PR для HTML Reader, который поддерживает css и изображения...... также узнайте, что задавать вопрос о SO не следует, задавая его в комментарии к ответу кому-либо чужой вопрос - person Mark Baker; 24.11.2015
comment
@MarkBaker Извините, без обид, мой вопрос заключался в том, чтобы понять роль HTML Reader, потому что, когда я читаю введение вашего проекта в Github, там говорится, что он поддерживает чтение HTML, это должно быть яснее, чтобы пользователи не тратили слишком много времени. Что касается комментариев, это тоже не ответ, лучше комментировать, чем отвечать. И спасибо за весь ваш вклад в Opensource за эти 10 лет, вы действительно заслуживаете медали :) Добрый вечер - person Charaf JRA; 24.11.2015
comment
Он поддерживает только базовую HTML-разметку, да и то только простые элементы; CSS — это не HTML, и обратите внимание, что большинство веб-браузеров также не полностью поддерживают HTML… но если я подробно опишу каждую вещь, которая поддерживается и не поддерживается PHPExcel, у меня никогда не будет времени работать над фактическая кодовая база - person Mark Baker; 24.11.2015
comment
Я знаю, что это займет слишком много времени, это должно быть сделано сообществом, в этом прелесть OpenSource. Спасибо, Марк. - person Charaf JRA; 24.11.2015

хорошо, пожалуйста, следуйте этому шагу. создайте файл php и вставьте в него этот код

<?php
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment;Filename=document_name.xls");

echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
... echo Your Html data...
echo "</body>";
echo "</html>";
?>

вместо ваших данных html повторите часть html в вашем test.html. затем запустите этот файл php, вы получите файл MS excel с именем «document_name.xls».

person user3493407    schedule 18.09.2014
comment
Прочитайте вопрос, он хочет использовать PHPExcel - person iswinky; 18.09.2014
comment
// Читаем содержимое файла в класс PHPExcel Reader $reader = new PHPExcel_Reader_HTML(); $objPHPExcel = $reader-›load('/var/www/html/edusec_temp/demo/protected/views/report/test.php'); Сгенерируйте эту ошибку: в этой строке она показывает мне ошибку, например: DOMDocument::loadHTMLFile() ожидает ровно 1 параметр, 2 заданных /var/www/html/edusec_temp/demo/protected/extensions/phpexcel/vendor/Classes/PHPExcel/ Читатель/HTML.php(427) - person Hiren Patel; 19.09.2014