javascript — экспортировать таблицу PHP с нумерацией страниц в EXCEL, PDF, PRINTABLE

Как я могу экспортировать свою таблицу php с нумерацией страниц в формат Excel и pdf? Я попробовал много плагинов и учебных пособий на YouTube, но все же не повезло, но они только отображают данные, а не всю таблицу. Я хочу экспортировать свою таблицу как минимум в печатную версию, лучше, если я смогу преобразовать свою таблицу в формат PDF или Excel. В моей таблице максимум 100 строк, разбитых на страницы по 10 строк на странице. Как я могу это сделать? Мне нужна ваша экспертиза.

Вот скриншот таблицы

PHP Экспорт в ветку:

<?php

include "connect.php";
require('lib/js/fpdf.php');

$result = mysqli_query($conn,"SELECT * FROM tblSales");

$header = mysqli_query($conn,"SELECT UCASE('date','sales')
FROM 'INFORMATION_SCHEMA'.'COLUMNS'
WHERE 'TABLE_SCHEMA'='DB_NAME'
AND 'TABLE_NAME'='tblSales'
and 'COLUMN_NAME' in ('date','sales')");

$pdf = new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
foreach($header as $heading) {
foreach($heading as $column_heading)
$pdf->Cell(95,12,$column_heading,1);
}
foreach($result as $row) {
$pdf->Ln();
foreach($row as $column)
$pdf->Cell(95,12,$column,1);
}
$pdf->Output();


?>

Код AJAX:

$(document).on('click', '.export-branch-excel', function () {
var branch = $("#branch-hidden-data").val();
$.ajax ({
url:"export-branch-excel.php",
data: "id="+branch,
method: "POST",
dataType: "text",
success: function(data){
window.location = "export-branch-excel.php";
}
});
});

2

Решение

@lawrence agulto Я изменил этот код на процедурный тип, как вы сказали. Попробуйте этот код.

Скачать в Excel:

            <?php

include_once "connect.php";

$query = mysqli_query($conn,"SELECT * FROM tblSales ORDER BY date DESC ");


$columnHeader = "Column Name"."\t"."Column Name1"."\t"."Column Name2"."\t"."Column Name3"."\t";

$setData='';
if (mysqli_num_rows($query) > 0) {
while ($rec = mysqli_fetch_assoc($query)) {
$rowData = '';

foreach ($rec as $value) {
$value = '"'.$value.'"'."\t";
$rowData.=$value;
}
$setData.=trim($rowData)."\n";
}
}


header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=Nobelz_Sushank.xls");
header("Pragme: no-cache");
header("Expires: 0");

echo "\t\tSales Data\n";
echo ucwords($columnHeader)."\n".$setData."\n";
?>

Скачать в pdf:

Загрузите библиотеку FPDF отсюда.

И изменить запрос, имя таблицы и TABLE_COLUMN_NAME в соответствии с вашими потребностями.

    <?php

$result = mysqli_query($conn," Your QUery");

$header = mysqli_query($conn,"SELECT UCASE(`COLUMN_NAME`)
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='DB_NAME'
AND `TABLE_NAME`='TABLE_NAME'
and `COLUMN_NAME` in ('TABLE_COLUMN_NAME','TABLE_COLUMN_NAME1', 'TABLE_COLUMN_NAME2', 'TABLE_COLUMN_NAME3')");


require('fpdf181/fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
foreach($header as $heading) {
foreach($heading as $column_heading)
$pdf->Cell(95,12,$column_heading,1);
}
foreach($result as $row) {
$pdf->Ln();
foreach($row as $column)
$pdf->Cell(95,12,$column,1);
}
$pdf->Output();
?>
2

Другие решения

Тема слишком широка. Что вам нужно сделать, это:

  • укажите ссылку для загрузки на странице (это означает, что любые параметры, необходимые для экспорта, должны быть сохранены в сеансе; ИЛИ вы можете выполнить более сложную «загрузку после AJAX POST»)
  • ссылка будет выполнять тот же запрос, который вы используете для разбивки на страницы, с необходимыми параметрами (см. выше), но без нумерация страниц Затем он получит несколько строк. Возможно большой количество рядов Вы уже на 95% сделали это.
  • вы используете библиотеку PHP ( новый PHPExcel для гибкости и возможностей, Носик для скорости) или библиотека шаблонов (например, TBS), чтобы вытащить эти строки в файл Excel. Это та часть, которая вам нужна.
  • отправить вместе с файлом Excel в двоичном формате.

Версия PDF такая же (если немного сложнее, так как обычно вам нужно составить PDF самостоятельно — есть способы сделать что-то иное, но требовать доступа к серверу, например, TBS + unoconv), за исключением того, что вместо этого вы используете библиотеку PDF Excel один. Например. FPDF или же TCPDF.

Для быстрого результата, и если вас не волнует форматированный файл Excel (фоны, логотипы, границы …), вы Можно замените часть Excel на «фальшивый» Excel — создайте таблицу HTML, файл CSV или, что еще хуже, простой неэкранированный большой двоичный объект с данными, разделенными табуляцией, дайте ему расширение XLS (X) и вперед. Из моего опыта это дает вам худший из возможных результатов: то, что работает 95-97% времени 1. Большие ожидания, периодически разбивающиеся, с огромным отставанием в обслуживании2. Если это любимый проект, дерзайте; если вам это нужно в профессиональной обстановке, найдите время, чтобы сделать это правильно.



(1) оставшиеся 3-5% состоят из символов UTF-8, кавычек, чисел и дат, написанных в любом формате, кроме того, который Excel понимает для импорта, и т. Д.

(2) добавить форматирование даты. Улучшить цитирование. Обнаружить UTF8. Определить UTF8, который на самом деле был ISO-8859-15. Подождите, неэкранированный. И так далее. Ох, и каждый раз, когда все должно быть сделано вчера. И почему это еще не работает?

0

По вопросам рекламы [email protected]