PHPExcel导出HTML表格到xlsx
我需要导出HTML表格从数据库到xlsx文件尽可能容易。PHPExcel导出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完全陌生,这段代码对我来说有点困惑。 **我应该在哪个变量中放置我的表格内容?**无论如何..谢谢你试图帮助我! –
我已经更新了我的答案,请检查它。 – karthikeyan
我已经改变了格式,并在代码中加入缓冲液的清洁。
<?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()
有助于避免高速缓存的缓冲。
希望这会有所帮助。
#1 ....确保绝对没有其他输出从您的脚本,甚至没有新行,正在发送到浏览器 –
#2 ....使用UTF-8的所有字符串和文字,然后它不会混淆字符,如ě,š,è,ř,ž,ý,á,í等。 –
为什么你会期望“新”解决方案设计用于以原生Excel格式编写文件+岁? –