PHP HTML表格作为Excel.xls文件
我有一些PHP脚本,可以创建一个表并将其保存为和PHP HTML表格作为Excel.xls文件,php,html,excel,Php,Html,Excel,我有一些PHP脚本,可以创建一个表并将其保存为和xls文件。所有的工作都很完美,编辑工作表中的信息。但是几天前,当我打开其中一个文件,编辑单元格数据并尝试保存时,Microsoft Excel尝试将文件保存为HTML,即使文件扩展名是xls $table = "<!DOCTYPE html> <html> <head> <style> </style> </head> <
xls
文件。所有的工作都很完美,编辑工作表中的信息。但是几天前,当我打开其中一个文件,编辑单元格数据并尝试保存时,Microsoft Excel尝试将文件保存为HTML,即使文件扩展名是xls
$table = "<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
Some table rows with table data
</table>
</body>
</html>";
$table=”
包含表数据的某些表行
";
我使用fopen
、fwrite
、fclose
将$table
变量保存在一个文件中,然后下载该文件
我也尝试过直接下载文件,而且每次编辑时,Excel都会尝试将其保存为HTML
我一直在寻找解决办法,但没有任何帮助。你知道如何解决这个问题吗?有几种方法可以将HTML表导出到xls或xlsx 第一个,回显右标题下的内容。这将在excel中生成大量警告,但xls将可读:
<?php
$excel_file="output.xls";
$table = "<!DOCTYPE html>
<html>
<head>
<style>
</style>
</head>
<body>
<table>
<tr><td>Some </td><td>table</td> <td>rows</td> <td>with</td> <td>table</td> <td>data</td></tr>
</table>
</body>
</html>";
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".$excel_file."");
echo $table;
?>
第二个更平滑一些,使用现有的库,比如PhpSpreadsheet。您可以在他们的github页面上找到非常简洁的基本示例:
第三个,使用来自的JS代码段。在这里,您可以看到一个基本示例:
<!DOCTYPE html>
<html>
<head>
<title>SheetJS JS-XLSX In-Browser HTML Table Export Demo</title>
<meta charset="utf-8" />
</head>
<body>
<![if gt IE 9]>
<script type="text/javascript" src="//unpkg.com/xlsx/dist/shim.min.js"></script>
<script type="text/javascript" src="//unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<script type="text/javascript" src="//unpkg.com/blob.js@1.0.1/Blob.js"></script>
<script type="text/javascript" src="//unpkg.com/file-saver@1.3.3/FileSaver.js"></script>
<![endif]>
<script>
function doit(type, fn, dl) {
var elt = document.getElementById('data-table');
var wb = XLSX.utils.table_to_book(elt, {sheet:"Sheet JS"});
return dl ?
XLSX.write(wb, {bookType:type, bookSST:true, type: 'base64'}) :
XLSX.writeFile(wb, fn || ('SheetJSTableExport.' + (type || 'xlsx')));
}
</script>
<div id="container">
<table id="data-table">
<tr><td>Sample1</td><td>Sample2</td><td>Sample3</td></tr>
<tr><td>Sample4</td><td>Sample5</td><td>Sample6</td></tr>
<tr><td>Sample7</td><td>Sample8</td><td>Sample9</td></tr>
</table>
</div>
<table>
<tr>
<td>
<p id="xportxlsx" class="xport"><input type="submit" value="Export to XLSX!" onclick="doit('xlsx');"></p>
</td></tr>
</table>
</body>
</html>
浏览器HTML表格导出演示中的SheetJS JS-XLSX
函数doit(类型、fn、dl){
var elt=document.getElementById('data-table');
var wb=XLSX.utils.table_to_book(elt,{sheet:“sheet JS”});
返回dl?
write(wb,{bookType:type,bookst:true,type:'base64'}):
writeFile(wb,fn | |('SheetJSTableExport.+(键入| |'XLSX'));
}
样本1样本2样本3
样本4样本5样本6
样本7样本8样本9
还有很多其他的方法,还有更多的库支持这个功能。最后,根据您的需要,您可以简单地创建CSV文件,而不是xls文件