【发布时间】:2014-09-15 13:54:50
【问题描述】:
目前我将数据存储在一个包含 HTML 表的变量中。我从How to format excel file with styles, fonts, colors, tables etc with pure PHP?得到这个想法
$table = '<table>';
$table .= '<tr>';
$table .= '<td>1st row, 1st cell</td>';
$table .= '<td>1st row, 2nd cell</td>';
$table .= '</tr>';
$table .= '<tr>';
$table .= '<td>2nd row, 1st cell</td>';
$table .= '<td>2nd row, 2nd cell</td>';
$table .= '</tr>';
$table .= '</table>';
downloadAsExcel($table, 'somefilename');
function downloadAsExcel($html, $filename)
{
header("Content-Type: application/excel");
header("Content-Disposition: attachment; filename=".ucwords($filename)."-Data.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $html
}
这工作正常,输出符合预期。但是,我想知道是否可以使用类似的方法在一个 Excel 文件中创建多个工作表。
如果我能做到这一点,那就太好了,因为我不想使用图书馆来完成这项工作。我查看了PHPExcel、ExcelReader、DocRaptor 等,因此我正在寻找不使用此类库的答案(如果可能的话)。
更新:差点忘了提 - 我也遇到了这个http://webcheatsheet.com/php/create_word_excel_csv_files_with_php.php#excelcom,但这需要我在服务器上安装 MS Excel,我不能,因为它是一个共享主机帐户。
PS:打开通过上述方法创建的 Excel 文件时出现的警告对话框我很好。
【问题讨论】:
-
完全有可能,有几十个库可以帮助你做到这一点......但是 HTML !== XLS 和 MS Excel 的 HTML 导入只允许一个工作表......获取多个工作表, 你需要创建一个real xls 或 xlsx 文件
-
那么你为什么不使用这些库之一呢?
-
附言。
application/excel不是有效的 mime 类型:application/vnd.ms-excel用于 xls 文件,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet用于 xlsx 文件 -
是的,我意识到这一点,但我的首要任务是在一个文件中包含多个工作表。关于不使用库,我想使用我自己的代码创建应用程序。我不想依赖外部因素。
-
Lol Mark Baker 你总是第一个回答
excel标记的问题...你有它在一些RSS 提要或什么的吗? :)