我正在显示一个数据表:
[Name] [Tel] [Email] [checkbox]
Name 1 000 1@name.com
Name 2 000 2@name.com (checked)
Name 3 000 3@name.com (checked)
(按下XLS下载的按钮)
我在这里想要实现的是创建此按钮,允许用户下载XLS文件中的所有已检查条目?
答案 0 :(得分:2)
如果CSV文件可以(可以在Excel中打开/编辑/保存),您可以使用以下内容:
foreach ($thing as $val) {
if($val['checked']) {
$csv_output .= "\"" . $val['name'] . "\",\"" . $val['tel'] . "\",\"" . $val['email'] . "\"\n";
}
}
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=" . $filename . "-" . date("Y-m-d") . ".csv");
print $csv_output;die;
其中$ csv_output是以CSV格式格式化的字符串。
如果要保存文件,可以使用PHP函数fputcsv
答案 1 :(得分:0)
当然,只有解决方案的一部分,但PHP模块Spreadsheet Excel Writer将允许您输出Excel电子表格。
答案 2 :(得分:0)
输出常规HTML页面对我来说效果最佳。 Excel解释包括CSS的格式。代码保持可读性。
<?php
$countries = Array(
Array('name' => 'France', 'capital' => 'Paris'),
Array('name' => 'Germany', 'capital' => 'Berlin'),
Array('name' => 'Switzerland', 'capital' => 'Berne'),
);
// make the browser open it in Excel
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=countries.xls");
?>
<html>
<head>
<style type="text/css">
td {
border: 1px solid blue
}
</style>
</head>
<body>
<table>
<tr>
<th>Country</th>
<th>Capital</th>
</tr>
<? foreach ($countries as $country): ?>
<tr>
<td><?=$country['name'] ?></td>
<td><?=$country['capital'] ?></td>
</tr>
<? endforeach; ?>
</table>
</body>
</html>
答案 3 :(得分:0)
有PHPExcel,一个用PHP编写Excel文件的好库。