PHPExcel экспортирует HTML-таблицу в xlsx

Мне нужно как можно быстрее экспортировать HTML-таблицу с данными из базы данных в xlsx-файл .

Я пробовал PHPExcel и некоторые JS-плагины, но безуспешно .

Есть ли новое решение?

Все, что я нашел, было почти 10 лет.

Это то, что я создал:

Моя форма HTML:

 <form action="download.php"> <input type="submit" value="Export" /> </form> 

Мой код PHPExcel (файл: download.php):

 <?php require_once "../Classes/PHPExcel.php"; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'hello world!'); $objPHPExcel->getActiveSheet()->setTitle('Chesse1'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="helloworld.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); ?> 

Когда я нажимаю кнопку, она загружает файл, но я не могу его открыть из-за «неправильного формата» .

Я также пробовал этот видеоурок: https://www.youtube.com/watch?v=4dc3a4isHNE&t

Экспорт файла Excel работал, но появилась другая проблема.

Проблема у меня была неправильной кодировкой . Мне нужно использовать такие персонажи, как: ě, š, č, ř, ž, ý, á, í и т. Д., И эти персонажи были полностью испорчены.

Обновленный ответ:

 <?php $conn = new mysqli('localhost', 'root', ''); mysqli_select_db($conn, 'xlsexport'); $setSql = "SELECT `ur_Id`,`ur_username`,`ur_password` FROM `tbl_user`"; $setRec = mysqli_query($conn, $setSql); $columnHeader = ''; $columnHeader = "Sr NO" . "\t" . "User Name" . "\t" . "Password" . "\t"; $setData = ''; while ($rec = mysqli_fetch_row($setRec)) { $rowData = ''; foreach ($rec as $value) { $value = '"' . $value['id'] . '"' . "\t".'"' . $value['ur_username'] . '"'."\t".'"' . $value['ur_password'] . '"'; $rowData .= $value; } $setData .= trim($rowData) . "\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename = User_Detail_Reoprt.xlsx"); header("Pragma: no-cache"); header("Expires: 0"); echo ucwords($columnHeader) . "\n" . $setData . "\n"; ?> 

Я изменил формат и добавил буфер в вашем коде.

 <?php require_once "../Classes/PHPExcel.php"; $objPHPExcel = new PHPExcel(); header('Content-Type: application/vnd.ms-excel; charset=utf-8'); header('Content-Disposition: attachment;filename="helloworld.xls"'); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->getCell('A20')->setValue("TEST PHPEXCEL"); $objPHPExcel->getActiveSheet()->setTitle('Chesse1'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); ob_end_clean(); $objWriter->save('php://output'); ?> 

Иногда Excel2007 конфликтует с Excel5 . И это зависит от файла библиотеки, доступного в PHPExcel. У меня была такая же проблема с файлом, который не открывается после загрузки. Поэтому я перешел на Excel5

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

Также ob_end_clean() помогает избежать буферизации кеша.

Надеюсь это поможет.

  • Пакет для подключения R и Excel без виртуальной машины Java
  • Изменение местоположения управления формой XLSX с помощью Apache POI
  • Как я могу увидеть формулы таблицы Excel в pandas / python?
  • вставить текстовый файл в существующий xlsx с помощью Python
  • R, XLConnect: настройка цвета с кодом RGB
  • Проблема кодирования UTF-8 из 2 столбцов в книге Excel
  • POI Excel: получите имя стиля
  • R - XLSX: добавьте одно значение в существующую таблицу excel
  • Django: openpyxl сохраняет книгу как вложение
  • Сохраните определенные столбцы в новом файле xlsx с помощью vbscript
  • Последующие действия: пишите из R в шаблон в excel, сохраняя форматирование
  • Давайте будем гением компьютера.