如何将我的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";
}
});
});
答案 0 :(得分: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格式下载:
Download the FPDF library from here.
根据您的需要更改查询,表名称和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();
?>
答案 1 :(得分:0)
主题过于宽泛。你需要做的是:
PDF版本是相同的(如果有点复杂,因为您通常需要自己编写PDF - 有其他方法可以做但不需要访问服务器,例如TBS + unoconv),除了你使用的PDF库而不是Excel库。例如。 FPDF或TCPDF。
为了快速获得结果,如果您不关心格式化的Excel文件(背景,徽标,边框......),您可以用&#34;替换Excel部分。假&#34; Excel - 创建一个HTML表格,一个CSV文件,甚至更简单的非转换标签分隔的数据blob,给它一个XLS(X)扩展名并继续。根据我的经验,这会给你带来最坏的结果: 95-97%的时间 1 。巨大的期望,定期破灭,巨大的维护积压 2 。如果它是一个宠物项目,那就去吧;如果你需要在专业的环境中,请花些时间做正确的事。
(1)剩余的3-5%由UTF-8字符,引号,数字和日期组成,以任何格式书写,但Excel理解为导入,等等。
(2)添加日期格式。改善报价。检测UTF8。检测实际上是ISO-8859-15的UTF8。 等待,未转义。等等等等。哦,每次必须完成所有事情昨天。为什么仍然不起作用? 功能