php 下载excel文件,单独设置工作表(sheet1,sheet2,sheet3....)
2017-08-25 16:55
477 查看
一直以来下载excel文件,都是简单使用修改header头的方式进行下载,好处自然是简单直接,缺点是,只能使用一个工作表,即一个sheet。
下面提供一个可生成多个工作表excel文件的code。
如果可以翻墙的话,可以查阅,提供了更多功能。
https://code.google.com/archive/p/phpexcelbuilder/
下面提供一个可生成多个工作表excel文件的code。
<?php namespace worksheet; class WorkSheet { private $lines = array(); public $sWorksheetTitle; public function __construct($sWorksheetTitle) { $this->setWorksheetTitle($sWorksheetTitle); } public function setWorksheetTitle ($title) { $title = preg_replace ("/[\\\¦:¦\/¦\?¦\*¦\[¦\]]/", "", $title); $title = substr ($title, 0, 31); $this->sWorksheetTitle = $title; } public function addRow ($array) { foreach($array as $v){ $cells = ""; foreach ($v as $k => $v1){ $type = 'String'; $v1 = htmlentities($v1, ENT_COMPAT, "UTF-8"); $cells .= "<Cell><Data ss:Type=\"$type\">" . $v1 . "</Data></Cell>\n"; } $this->lines[] = "<Row>\n" . $cells . "</Row>\n"; } } public function printline() { foreach ($this->lines as $line) { echo $line; } } } class Excel { public $worksheets = array(); public function __construct($sWorksheetTitle) { $this->addsheet($sWorksheetTitle); } public function addsheet($title) { $this->worksheets[$title] = new WorkSheet($title); } public function generate ($filename = 'excel-export') { $filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename); header("Content-Type: application/force-download"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment; filename=".$filename.'-'.date("YmdHis").".xls"); echo stripslashes("<?xml version=\"1.0\" encoding=\"UTF-8\"?\>\n<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:html=\"http://www.w3.org/TR/REC-html40\">"); foreach ($this->worksheets as $worksheet) { echo "\n<Worksheet ss:Name=\"" . $worksheet->sWorksheetTitle . "\">\n<Table>\n"; $worksheet->printline(); echo "</Table>\n</Worksheet>\n"; } echo "</Workbook>"; } } $xls = new Excel('演员表'); //构造函数,参数为第一个sheet名称 $xls->addsheet('演员表'); $xls->worksheets['演员表']->addRow(array( array("李晨","马苏","杜淳") )); //添加一行,数据为1,2,3 $xls->addsheet('角色表');//新建一个sheet,参数为sheet名称 $xls->worksheets['角色表']->addRow(array( array("何东","权筝","何北") )); //添加一行,数据为3,2,1 $xls->generate('down');//下载excel,参数为文件名 ?>
如果可以翻墙的话,可以查阅,提供了更多功能。
phpexcelbuilder
https://code.google.com/archive/p/phpexcelbuilder/
相关文章推荐
- PHP:设置文件下载对话框的文件名
- AngularJS基于http请求实现下载php生成的excel文件功能示例
- PHPExcel与ajax结合进行文件下载
- PHP的文件下载的头信息设置
- php 下载文件 中文乱码 header设置
- PHP常用功能-文件下载、头设置、断点续传
- asp.net 生成导出word表单 ,导出excel; dataTable生成xls文件,返回前台下载;asp.net启动excel错误 80070005;excel-xls columnName 不能改变; 读写excel的开源利器NPOI; 设置excel Cell的数据类型;
- PHP—SQL下载为EXCEL文件
- php图片文件 下载文件 防盗链设置方法
- Excel VBA-批量将多个sheet表另存为单独的工作薄文件
- PHP—SQL下载为EXCEL文件
- Phpexcel 多sheet ,设置
- 用PHP对文件夹进行访问权限设置(文件防止被下载设置)
- php笔记07:http响应详解(禁用缓存设置和文件下载)
- poi下载下载excel文件头设置
- PHP实现实时生成并下载超大数据量的EXCEL文件详解
- PHP导出excel表格文件并下载,不需要利用插件
- phpspreadsheet文件下载
- PHP生成excel表格文件并下载
- 把Excel中多个sheet分别另存为单独的文件