PHPExcel笔记, mpdf导出
PHP导出Excel的类库—PHPExcel,支持附带图片

PHP导出Excel的类库—PHPExcel,支持附带图片PHP导出Excel的类库—PHPExcel,支持附带图片PHP导出Excel比较简单的办法有:一、直接通过PHP的header来导出Excel。
view sourceprint?01.header("Content-type:application/vnd.ms-excel");02.header("Content-Disposition:attachment;filename=excel_data.xls");03.04.$tx='HEADER';05.echo $tx."\n\n";06.//输出内容如下:07.echo "Name"."\t";08.echo "Age"."\t";09.echo "\n";10.echo "lilei"."\t";11.echo "25"."\t";二、采用Excel_XML类。
Excel_XML是一个简单的PHP导出XML格式Excel的类。
下载地址:/p/php-excel/downloads/list使用方法:view sourceprint?01.// load library02.require 'php-excel.class.php';03.04.// create a simple 2-dimensional array05.$data = array(06.1 => array ('Name', 'Surname'),07.array('Schwarz', 'Oliver'),08.array('Test', 'Peter')09.);10.11.// generate file (constructor parameters are optional)12.$xls = new Excel_XML('UTF-8', false, 'My Test Sheet');13.$xls->addArray($data);14.$xls->generateXML('my-test');以上两种是比较简单的导出Excel的方法,但功能不够强大,只能满足一般的需求。
php导出大量数据的方法

php导出大量数据的方法在Web开发中,经常会遇到导出大量数据的需求,例如从数据库中导出表格数据、生成Excel报表等。
本文将介绍几种使用PHP导出大量数据的方法,帮助您在实际项目中快速处理这类需求。
一、将数据导出为CSV文件CSV(逗号分隔值)是一种常用的数据交换格式,它的优点是简单、易读,适用于大多数数据导出场景。
以下是使用PHP将数据导出为CSV文件的示例代码:```php<?php// 设置HTTP头,告诉浏览器下载文件header('Content-Type: text/csv');header('Content-Disposition: attachment; filename="data.csv"');// 打开输出流$fp = fopen('php://output', 'w');// 查询数据库获取数据$data = []; // 假设这里是数据库查询的结果// 写入CSV文件头部fputcsv($fp, array_keys($data[0]));// 逐行写入数据foreach ($data as $row) {fputcsv($fp, $row);}// 关闭输出流fclose($fp);>```上述代码首先设置了HTTP头,告诉浏览器将要下载一个CSV文件。
然后,使用`fopen()`打开输出流,指定使用`php://output`作为文件路径,这样就可以直接将数据输出到浏览器。
接着,通过`fputcsv()`函数将表头和数据按CSV格式写入文件。
最后,使用`fclose()`关闭输出流。
二、将数据导出为Excel文件除了导出CSV文件,我们还可以使用PHP将数据导出为Excel文件(xls或xlsx格式)。
这需要借助第三方库,如PHPExcel或PhpSpreadsheet。
php导出excel表格

最近因项目需要,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。
就趁机对这个研究了一番,下面进行一些总结。
基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。
修改这种文件后再保存,通常会提示你是否要转换成Excel文件。
优点:简单。
缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。
2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。
如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr);一、PHP导入Excel1:还是用PHPExcel,官方网站:/PHPExcel。
2:使用PHP-ExcelReader,下载地址: /projects/phpexcelreader举例:<?phprequire_once 'Excel/reader.php';// ExcelFile($filename, $encoding);$data = new Spreadsheet_Excel_Reader();// Set output Encoding.$data->setOutputEncoding('utf8');$data->read(' jxlrwtest.xls');error_reporting(E_ALL ^ E_NOTICE);for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";}echo "\n";}?>总结php导出Excel php导入Excel PhpExcel使用说明PhpExcel使用手册方法一:特点,简单,省心,制表符"\t"用户分割同一行中的列,换行符"\t\n"可以开启下一行,还能够自动识别日期格式,货币格式等!<?phpheader("Content-type:application/vnd.ms-excel");header("Content-Disposition:attachment;filename=test_data.xls");//输出内容如下:echo "姓名"."\t";echo "年龄"."\t";echo "学历"."\t";echo "\n";echo "张三"."\t";echo "25"."\t";echo "本科"."\t";?>动态版<?$sql = "SELECT * FROM " .$ecs->table('member'). " ";$classres = $db->Execute($sql);header("Content-type:application/vnd.ms-excel");header("Content-Disposition:attachment; filename=test_data.xls");echo 'ID'.chr(9);echo 'txtPEOClientCode'.chr(9);echo 'jcompany'.chr(9);echo 'fcompany'.chr(9);echo 'ecompany'.chr(9);echo 'rcompany'.chr(9);echo 'txtAddress'.chr(9);echo 'txtCompanyTel'.chr(9);echo 'txtFax'.chr(9);echo 'txtPostCode'.chr(9);echo chr(13);while ($classrow = $classres->FetchRow()){//输出到xlsecho $classrow['id'].chr(9);echo $classrow['txtPEOClientCode'].chr(9);echo $classrow['jcompany'].chr(9);echo $classrow['fcompany'].chr(9);echo $classrow['ecompany'].chr(9);echo $classrow['rcompany'].chr(9);echo $classrow['txtAddress'].chr(9);echo $classrow['txtCompanyTel'].chr(9);echo $classrow['txtFax'].chr(9);echo $classrow['txtPostCode'].chr(9);echo chr(13);}现在用的Php-excel(/p/php-excel/downloads/list),代码也很简单:require (dirname (__FILE__) . "./class-excel-xml.inc.php");$sql = "SELECT * FROM " .$ecs->table('member'). " ";$classres = $db->Execute($sql);while($classrow = $classres->FetchRow()){$doc[] = array ($classrow['txtPEOClientCode'], $classrow['jcompany'], $classrow['txtBillTo']);}$xls = new Excel_XML;$xls->addArray($doc);$xls->generateXML("mytest");我用的utf-8,结果有乱码问题,把class-excel-xml.inc.php utf8_encode($v) 替换成$v就没有乱码问题了。
php利用PHPExcel类导出导入Excel用法

php利用PHPExcel类导出导入Excel用法PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介绍了)。
导出Excel用法//设置环境变量(新增PHPExcel)代码如下复制代码set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' .PATH_SEPARATOR .get_include_path());//注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”);//引入PHPExcel相关文件require_once "PHPExcel.php";require_once 'PHPExcel/IOFactory.php';require_once 'PHPExcel/Writer/Excel5.php';//把要导出的内容放到表格代码如下复制代码//新建$resultPHPExcel = new PHPExcel();//设置参数//设值$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');$i = 2;foreach($data as $item){$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']); $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']); $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);$i ++;}设置导出参数代码如下复制代码//设置导出文件名$outputFileName = 'total.xls';$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);//ob_start(); ob_flush();header("Content-Type: application/force-download");header("Content-Type: application/octet-stream");header("Content-Type: application/download");header('Content-Disposition:inline;filename="'.$outputFileName.'"');header("Content-Transfer-Encoding: binary");header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");$xlsWriter->save( "php://output" );输出有错。
使用php导出excel时处理复杂表头的万能方法

使用php导出excel时处理复杂表头的万能方法处理复杂表头时,使用PHP导出Excel表格的方法在使用PHP导出Excel表格时,当表头比较复杂时,可能会遇到一些困难。
然而,有一种简单而有效的方法可以处理这种情况。
首先,我们需要将表头信息保存在一个数组中。
该数组中的每个元素代表一个表头。
例如,我们可以使用以下代码定义一个包含复杂表头的数组:$tableHeaders = [['A1', 'B1', 'C1'],['A2', 'B2', 'C2'],['A3', 'B3', 'C3']];接下来,我们需要使用递归函数来合并和展开表头。
这样可以确保表头在导出Excel时正确格式化。
function mergeHeaders($headers, &$result, $startColumn = 0, $startRow = 0) {$maxRow = 1;foreach ($headers as $rowIndex => $headerRow) {foreach ($headerRow as $columnIndex => $headerCell) {$cell = $result->getActiveSheet()->getCellByColumnAndRow($columnIndex + $startColumn, $rowIndex + $startRow);$cell->setValue($headerCell);$maxRow = max($maxRow, $rowIndex + 1);}}$result->getActiveSheet()->mergeCellsByColumnAndRow($startColumn, $startRow, $startColumn + count($headers[0]) - 1, $startRow);if (count($headers) > 1) {mergeHeaders(array_slice($headers, 1), $result, $startColumn, $startRow + $maxRow);}}在上述代码中,mergeHeaders函数接受表头数组、Excel对象以及起始列和行作为参数。
PHP 导出excel文件总结

PHP导出excel文件总结最近因项目需要,需要把系统中的中奖数据导出成Excel格式的文件,百度,谷歌了一番很快就搞定了,觉得以后估计也会用到,于是下面小小的总结了一下,留备后用。
本次实现PHP导出Excel文件使用的是PHP开源程序PHPExcel,话说这开源的就是好啊,什么东东都写好了,只需拿来调用一下就行了!先外链支持一下PHPExcel的官方网站: /PHPExcel,大家可以直接去官方下载php导出excel文件所需要用到的类库文件,案例代码相当的多,导出pdf什么的都有,不过在这里主要介绍导出excel的功能,其他的不多说,读者有需要的,可以下下来自行研究,这里总结的导出excel文件是office2007格式,同时兼容2003的。
下面直接放出本人总结的使用PHP导出Excel的部分调用代码。
查看代码打印01<?php02error_reporting(E_ALL);03date_default_timezone_set('Asia/Shanghai');04require_once './Classes/PHPExcel.php';0506$data=array(070=>array(08'id'=>1001,09'username'=>'张飞',10'password'=>'123456',11'address'=>'三国时高老庄250巷101室'12),131=>array(14'id'=>1002,15'username'=>'关羽',16'password'=>'123456',17'address'=>'三国时花果山'18),192=>array(20'id'=>1003,21'username'=>'曹操',22'password'=>'123456',23'address'=>'延安西路2055弄3号'24),253=>array(26'id'=>1004,27'username'=>'刘备',28'password'=>'654321',29'address'=>'愚园路188号3309室'30)31);3233$objPHPExcel=new PHPExcel();34$objPHPExcel->getProperties()->setCreator('')35->setLastModifiedBy('')36->setTitle('Office 2007 XLSX Document')37->setSubject('Office 2007 XLSX Document')38->setDescription('Document for Office 2007 XLSX, generated using PHP classes.') 39->setKeywords('office 2007 openxml php')40->setCategory('Result file');41$objPHPExcel->setActiveSheetIndex(0)42->setCellValue('A1','ID')43->setCellValue('B1','用户名')44->setCellValue('C1','密码')45->setCellValue('D1','地址');4647$i=2;48foreach($data as $k=>$v){49$objPHPExcel->setActiveSheetIndex(0)50->setCellValue('A'.$i,$v['id'])51->setCellValue('B'.$i,$v['username'])52->setCellValue('C'.$i,$v['password'])53->setCellValue('D'.$i,$v['address']);54$i++;55}56$objPHPExcel->getActiveSheet()->setTitle('三年级2班');57$objPHPExcel->setActiveSheetIndex(0);58$filename=urlencode('学生信息统计表').'_'.date('Y-m-dHis');596061/*62*生成xlsx文件63header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');64header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');65header('Cache-Control: max-age=0');66$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');67*/6869/*70*生成xls文件71header('Content-Type: application/vnd.ms-excel');72header('Content-Disposition: attachment;filename="'.$filename.'.xls"');73header('Cache-Control: max-age=0');74$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');75*/7677$objWriter->save('php://output');78exit;注意:如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,代码类似如下:查看代码打印1$str=mb_convert_encoding("gb2312","UTF-8",$str);来源:清源教育。
利用PHPExcel读取Excel的数据和导出数据到Excel

利⽤PHPExcel读取Excel的数据和导出数据到ExcelPHPExcel是⼀个PHP类库,⽤来帮助我们简单、⾼效实现从Excel读取Excel的数据和导出数据到Excel。
也是我们⽇常开发中,经常会遇到的使⽤场景。
⽐如有个客户信息表,要批量导出发给同事,我们就可以⽤PHPExcel来快速实现。
同样,如果我们要利⽤短信群发接⼝去群发信息,PHPExcel可以快速导⼊客户信息,避免⼈⼯录⼊信息的⿇烦。
PHPExcel使⽤教程:⾸先下载PHPExcel下载好⽂件,解压可以得到如下⽂件:PHPExcel好了,现在我们就可以⽤PHPExcel愉快的读取和制作表格了!PHPExcel DEMO1:利⽤PHPExcel读取excel信息:我们在根⽬录创建⼀个名为read.php的⽂件来读取⽂档,创建⼀个test.xlsx的⽂件,⾥⾯写的信息如下:然后在read.php写以下代码:<?phpinclude ‘./Classes/PHPExcel/IOFactory.php';$inputFileName = ‘./test.xls';date_default_timezone_set(‘PRC');// 读取excel⽂件try {$inputFileType = PHPExcel_IOFactory::identify($inputFileName);$objReader = PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel = $objReader->load($inputFileName);} catch(Exception $e) {die(‘加载⽂件发⽣错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage()); }// 确定要读取的sheet,什么是sheet,看excel的右下⾓,真的不懂去百度吧$sheet = $objPHPExcel->getSheet(0);$highestRow = $sheet->getHighestRow();$highestColumn = $sheet->getHighestColumn();// 获取⼀⾏的数据for ($row = 1; $row <= $highestRow; $row++){// Read a row of data into an array$rowData = $sheet->rangeToArray(‘A' . $row . ‘:' . $highestColumn . $row, NULL, TRUE, FALSE);//这⾥得到的rowData都是⼀⾏的数据,得到数据后⾃⾏处理,我们这⾥只打出来看看效果var_dump($rowData);echo “<br>”;}得到的数据:PHPexcel读取⽂件PHPExcel DEMO2:利⽤PHPExcel导出信息到excel:<?php/** Error reporting */error_reporting(E_ALL);ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);date_default_timezone_set('PRC');/** 引⼊PHPExcel */require_once dirname(__FILE__) . './Classes/PHPExcel.php';// 创建Excel⽂件对象$objPHPExcel = new PHPExcel();// 设置⽂档信息,这个⽂档信息windows系统可以右键⽂件属性查看$objPHPExcel->getProperties()->setCreator("作者简庆旺")->setLastModifiedBy("最后更改者")->setTitle("⽂档标题")->setSubject("⽂档主题")->setDescription("⽂档的描述信息")->setKeywords("设置⽂档关键词")->setCategory("设置⽂档的分类");//根据excel坐标,添加数据$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '你好')->setCellValue('B2', '世界')->setCellValue('C1', '你好')->setCellValue('D2', '世界');// 混杂各种符号, 编码为UTF-8$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4', 'Miscellaneous glyphs')->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');$objPHPExcel->getActiveSheet()->setCellValue('A8',"你好世界");$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);$value = "-ValueA\n-Value B\n-Value C";$objPHPExcel->getActiveSheet()->setCellValue('A10', $value);$objPHPExcel->getActiveSheet()->getRowDimension(10)->setRowHeight(-1);$objPHPExcel->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->getStyle('A10')->setQuotePrefix(true);// 重命名⼯作sheet$objPHPExcel->getActiveSheet()->setTitle('第⼀个sheet');// 设置第⼀个sheet为⼯作的sheet$objPHPExcel->setActiveSheetIndex(0);// 保存Excel 2007格式⽂件,保存路径为当前路径,名字为export.xlsx$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save( 'export.xlsx');// 保存Excel 95格式⽂件,,保存路径为当前路径,$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('export.xls');好了,执⾏后我们可以得到export.xls和export.xlsx。
PHP输出ExcelPHPExcel的方法

PHP输出ExcelPHPExcel的⽅法本⽂实例为⼤家分享了PHP输出Excel PHPExcel的具体代码,供⼤家参考,具体内容如下⽅法1:/*** 创建(导出)Excel数据表格* @param array $list 要导出的数组格式的数据* @param string $filename 导出的Excel表格数据表的⽂件名* @param array $header Excel表格的表头* @param array $index $list数组中与Excel表格表头$header中每个项⽬对应的字段的名字(key值)* ⽐如: $header = array('编号','姓名','性别','年龄');* $index = array('id','username','sex','age');* $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));* @return [array] [数组]*/function createtable($list,$filename,$header=array(),$index = array()){header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=".$filename.".xls");$teble_header = implode("\t",$header);$strexport = $teble_header."\r";foreach ($list as $row){foreach($index as $val){$strexport.=$row[$val]."\t";}$strexport.="\r";}$strexport=iconv('UTF-8',"GB2312//IGNORE",$strexport);exit($strexport);}此⽅法代码量少,可以放在thinkPHP5中的公共函数common.php中,⽅便调⽤,但是对输出的Excel表格⽆法设置属性⽅法2:⾸先需要到下载SDK,,下载后解压,我们只需要⾥边的Classes⽂件夹,将其改名为PHPExcel。
【PHP】PHPExcel数据导出方法封装

【PHP】PHPExcel数据导出⽅法封装1、⽅法封装/*** @description excel数据导出⽅法封装列数⽀持700+* @param array $title 列标题、宽度和数据字段⼆维数组必须 array(array('title'='name','width'=>30,'field'=>'user_name'),array('title'='sex','width'=>10,'field'=>'sex')) * @param array $data ⼆维数组数据* @param string $fileName 导出⽂件名* @param bool $bold 列标题是否加粗* @param bool $returnFile 是否保存为⽂件*/function exportDataToExcel($title = array(), $data = array(), $fileName = '', $bold = true,$returnFile = false){if (empty($title)) {return false;}$objPHPExcel = new PHPExcel();$count = count($title);for ($i = 0; $i < $count; $i++) {$i_name = PHPExcel_Cell::stringFromColumnIndex($i);//处理列⼤于26个的⽅法//设置列宽度$objPHPExcel->getActiveSheet()->getColumnDimension($i_name)->setWidth($title[$i]['width']);//设置列名$objPHPExcel->setActiveSheetIndex(0)->setCellValue($i_name . '1', $title[$i]['title']);//列名是否加粗if ($bold) {$objPHPExcel->getActiveSheet()->getStyle($i_name . '1')->getFont()->setBold(true);}//数据处理if($data){foreach ($data as$key => $item) {$objPHPExcel->setActiveSheetIndex(0)->setCellValue($i_name . ($key + 2), $item[$title[$i]['field']]);}}}$objPHPExcel->getActiveSheet()->setTitle('Simple');$objPHPExcel->setActiveSheetIndex(0);$fileName = $fileName ? $fileName : date("Ymd", time()) . '.xlsx';if($returnFile){$dirPath = '/';//注意要设置为绝对路径$newFileName = date('YmdHis').'_'.$fileName;$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save($dirPath.'/'.$newFileName);return$newFileName;}else{ob_end_clean();header('Content-Type: application/vnd.ms-excel');header('Access-Control-Expose-Headers: Content-Disposition');header('Content-Disposition: attachment;filename=' . $fileName);header('Cache-Control: max-age=0');header('Cache-Control: max-age=1');header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');header('Cache-Control: cache, must-revalidate');header('Pragma: public');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('php://output');exit;}}2、调⽤⽰例 data为⼆维数组数据<?php$title = array(array('title'=>'Certificate name','width'=>20,'field'=>'cert_name'),array('title'=>'Name','width'=>30,'field'=>'user_name'),array('title'=>'Company','width'=>30,'field'=>'user_company'),array('title'=>'Certificate ID','width'=>30,'field'=>'cert_key'),array('title'=>'Effective date','width'=>15,'field'=>'effect_time'),array('title'=>'Expiration time','width'=>15,'field'=>'expire_time'),array('title'=>'Country','width'=>30,'field'=>'country'),array('title'=>'Region','width'=>15,'field'=>'region'),array('title'=>'SF_COMPANYCODE','width'=>20,'field'=>'SF_COMPANYCODE'),array('title'=>'EMAIL','width'=>30,'field'=>'EMAIL'),array('title'=>'COMPANYTYPE','width'=>30,'field'=>'COMPANYTYPE'));handleSheetData($title,$data,'Certificate_list_'.date("Ymd", time()).'.xlsx');>。
tp5使用PHPexcel扩展导出excel表

tp5使⽤PHPexcel扩展导出excel表1,使⽤composer安装phpexcel包:composer require phpoffice/phpexcel2,在控制器中创建⽅法:(1)使⽤PHPexcel扩展。
代码如下/*** 导出excel表格(默认格式)** @param array $columName 第⼀⾏的列名称* @param array $list ⼆维数组* @param string $setTitle sheet名称* @return* @author Tggui <tggui@>*/private function exportExcel1($columName, $list, $fileName='demo', $setTitle='Sheet1'){vendor('phpoffice.phpexcel.Classes.PHPexcel');vendor('phpoffice.phpexcel.Classes.PHPexcel.IOFactory');if ( empty($columName) || empty($list) ) {return '列名或者内容不能为空';}if ( count($list[0]) != count($columName) ) {return '列名跟数据的列不⼀致';}$fileName = iconv("utf-8", "gb2312", $fileName);//实例化PHPExcel类$PHPExcel = new \PHPExcel();//获得当前sheet对象$PHPSheet = $PHPExcel -> getActiveSheet();//定义sheet名称$PHPSheet -> setTitle($setTitle);//excel的列这么多够⽤了吧?不够⾃个加 AA AB AC ……$letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];//把列名写⼊第1⾏ A1 B1 C1 ...for ($i=0; $i < count($list[0]); $i++) {//$letter[$i]1 = A1 B1 C1 $letter[$i] = 列1 列2 列3$PHPSheet->setCellValue("$letter[$i]1","$columName[$i]");}//内容第2⾏开始foreach ($list as$key => $val) {//array_values 把⼀维数组的键转为0 1 2 3 ..foreach (array_values($val) as$key2 => $val2) {//$letter[$key2].($key+2) = A2 B2 C2 ……$PHPSheet->setCellValue($letter[$key2].($key+2),$val2);}}//⽣成2007版本的xlsx$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel,'Excel2007');header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header('Content-Disposition: attachment;filename='.$fileName.'.xlsx');header('Cache-Control: max-age=0');$PHPWriter->save("php://output");exit;}2),⾃定义函数,不使⽤PHPexcel扩展。
PHPExcel导入导出常用方法总结

PHPExcel导⼊导出常⽤⽅法总结最近公司后台管理系统需求,要⽤PHP导出excel表格数据,所以特整理了⼀下常⽤的⽅法供⼤家参考:PHPExcel扩展包地址:⼤致的分为⼏个部分:⼀、导出的⽅法及步骤1.引⼊PHPExcel⽂件:require_once("../Classes/PHPExcel.php");2.实例化PHPExcel:$ObjPHPExcel = new PHPExcel();3.获取当前⼯作sheet:$ObjPHPExcel->getACtiveSheet();4.给当前⼯作表设置名称:$ObjPHPExcel->setTitle('sheet表名称');5.添加数据,赋值:$ObjPHPExcel->setCellValue('单元格坐标','值');6.按照指定格式⽣成excel⽂件:$ObjPHPExcel->PHPExcel_IOFactory::createWriter($ObjPHPExcel,'Excal5');7.保存Excel⽂件:$ObjPHPExcel->save('保存路径及⽂件名');8.如果要将⽣成的Excel⽂件输出到浏览器:Excel5需要添加以下代码:header("Content-type:application/vnd.ms-excel");//输出Excel03⽂件header("Content-Disposition:attachment;filename=test.xls');header("Content-Control:max-age = 0");$ObjPHPExcel->save("php://output");Excel7需要添加以下代码:header("Content-type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//输出Excel07⽂件header("Content-Disposition:attachment;filename=test.xlsx');//浏览器输出⽂件名称header("Content-Control:max-age = 0");//禁⽌浏览器缓存$ObjPHPExcel->save("php://output");⼆、Excel样式控制1.合并单元格:$ObjPHPExcel->getActiveSheet()->mergeCells('A18:E22');2.拆分单元格:$ObjPHPExcel->getActiveSheet()->unmergeCells('A18:E22');3.设置默认单元格⽔平⽅向居中:$ObjPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal( PHPExcel_Style_Alignment::HORIZONTAL_CENTER);4.设置默认单元格垂直⽅向居中:$ObjPHPExcel->getDefaultStyle()->getAlignment()->setvertical( PHPExcel_Style_Alignment::VERTICAL_CENTER);5.设置默认字体样式:字体类型:$ObjPHPExcel->getDefaultStyle()->getFont()->setName('微软雅⿊');字体⼤⼩:$ObjPHPExcel->getDefaultStyle()->getFont()->setSize(14);6.设置指定字体样式:$ObjPHPExcel->getStyle('A18:E22')->getFont()->setName('微软雅⿊');字体⼤⼩:$ObjPHPExcel->getStyle('A18:E22')->getFont()->setSize(14);7.设置背景颜⾊:填充⽅式(完全填充):$ObjPHPExcel->getStyle('B2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);填充颜⾊:$objPHPExcel->getStyle('B2')->getFill()->getStartColor()->setARGB('FFFF0000');8.设置边框:$styleArray = array('borders' => array('outline' => array('style' => PHPExcel_Style_Border::BORDER_THICK,'color' => array('argb' => 'FFFF0000'),),),);$objWorksheet->getStyle('B2:G8')->applyFromArray($styleArray);调⽤getStyle()⽅法的,参数都可以通过数组的⽅式传⼊。
PHPExcel笔记, mpdf导出

这篇文章主要介绍了PHPExcel笔记, mpdf导出,需要的朋友可以参考下phpexcel常用处理##导入类库require 'PHPExcel/Classes/PHPExcel.php';require 'PHPExcel/Classes/PHPExcel/Writer/Excel5.php'; //非07格式的写出类##基础属性设定$objPHPExcel = \PHPExcel_IOFactory::load('a.xls'); //读入指定excel文件$objPHPExcel->setActiveSheetIndex(0); //指定活动工作表$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('宋体');$objPHPExcel->getProperties()->setTitle('xxx');##单元格编辑$objPHPExcel->getActiveSheet()->setCellValue('A3', 'xxx'); //设定A3单元格值为xxx##单元格绘图$objDrawing = new \PHPExcel_Worksheet_Drawing();$objDrawing->setPath('a.jpg'); //指定图片路径。
若要远程图片需PHPExcel/Classes/PHPExcel/Worksheet/Drawing.php:106处file_exists换成file_get_contents $objDrawing->setCoordinates('A4'); //指定在A4单元格绘图$objDrawing->setName('Photo');$objDrawing->setDescription('Photo');$objDrawing->setHeight(120);$objDrawing->setWidth(100);$objDrawing->setOffsetX(7);$objDrawing->setOffsetY(7);$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());##excel文件浏览器下载导出$filename='a.xls';$encoded_filename = rawurlencode($filename);$ua = $_SERVER["HTTP_USER_AGENT"];header('Content-type: application/vnd.ms-excel');if (preg_match("/MSIE/", $ua) || preg_match("/Trident\/7.0/", $ua) || preg_match("/Edge/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');} else if (preg_match("/Firefox/", $ua)) { header("Content-Disposition: attachment; filename*=\"utf8''" . $filename . '"');} else { header('Content-Disposition: attachment; filename="' . $filename . '"');}header("Pragma:no-cache");header("Expires:0");$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');##excel文件html显示(可用于调试)$objWriter = new \PHPExcel_Writer_HTML($objPHPExcel);$objWriter->save('php://output');利用mpdf库从phpexcel导出pdf文件$filename='a.pdf';$encoded_filename = rawurlencode($filename);$rendererName = \PHPExcel_Settings::PDF_RENDERER_MPDF; //指定通过mpdf类库导出pdf文件$rendererLibraryPath = 'PHPExcel/MPDF57'; //指定你下载的mpdf类库路径if (!\PHPExcel_Settings::setPdfRenderer( $rendererName, $rendererLibraryPath)) { die( 'Please set the $rendererName and $rendererLibraryPath values' . PHP_EOL . ' as appropriate for your directory structure' );}header('Content-type: application/pdf');if (preg_match("/MSIE/", $ua) || preg_match("/Trident\/7.0/", $ua) || preg_match("/Edge/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');} else if (preg_match("/Firefox/", $ua)) { header("Content-Disposition: attachment; filename*=\"utf8''" . $file_name . '"');} else { header('Content-Disposition: attachment; filename="' . $file_name . '"');}header("Pragma:no-cache");header("Expires:0");$objWriter = new \PHPExcel_Writer_PDF($objPHPExcel);$objWriter->setPreCalculateFormulas(false);$objWriter->save('php://output');################################pdf导出失败的一些错误解决方法################################1 pdf中文乱码问题PHPExcel/Classes/PHPExcel/Writer/PDF/mPDF.php:105处加两行设定:$pdf->useAdobeCJK = true;$pdf->SetAutoFont(AUTOFONT_ALL);##2 类库里面多处preg_replace调用使用了元字符e,而部分低版本php不支持正则表达式e元字符e元字符的不当使用并导致pdf报错的触发点在类库里面大概有五六处吧,由于e元字符是一个shell下的子进程php调用,所以报错信息不会反馈到当前php进程中,故即便你配置了错误打印到屏幕,页面也不会显示报错信息,必须查看php报错日志查看php报错日志,把提示的preg_replace中元字符e的调用替换为preg_replace_callback 形式的调用##3 部分版本phpexcel类库有单元格样式判断错误lib/PHPExcel/Classes/PHPExcel/Writer/HTML.php:1236处加个if判断if (!$this->_useInlineCss) { $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex();。
PHPExcel实现表格导出功能示例【带有多个工作sheet】

PHPExcel实现表格导出功能⽰例【带有多个⼯作sheet】本⽂实例讲述了PHPExcel实现表格导出功能。
分享给⼤家供⼤家参考,具体如下:⾸先得去下载phpexcel⽂档,解压下来<?php/*** 简单实⽤Execl*/set_include_path('.'.get_include_path().PATH_SEPARATOR.dirname(__FILE__).'/PHPExecl/');/* @func 引⼊类 */require 'PHPExcel.php';//模拟数据$mulit_arr = array(array('标题1', '标题2', '标题3'),array('a', 'b', 'c'),array('d', 'e', 'f'));/* @实例化 */$obpe = new PHPExcel();/* @func 设置⽂档基本属性 */$obpe_pro = $obpe->getProperties();$obpe_pro->setCreator('midoks')//设置创建者->setLastModifiedBy('2013/2/16 15:00')//设置时间->setTitle('data')//设置标题->setSubject('beizhu')//设置备注->setDescription('miaoshu')//设置描述->setKeywords('keyword')//设置关键字 | 标记->setCategory('catagory');//设置类别/* 设置宽度 *///$obpe->getActiveSheet()->getColumnDimension()->setAutoSize(true);//$obpe->getActiveSheet()->getColumnDimension('B')->setWidth(10);//设置当前sheet索引,⽤于后续的内容操作//⼀般⽤在对个Sheet的时候才需要显⽰调⽤//缺省情况下,PHPExcel会⾃动创建第⼀个SHEET被设置SheetIndex=0//设置SHEET$obpe->setactivesheetindex(0);//写⼊多⾏数据foreach($mulit_arr as $k=>$v){$k = $k+1;/* @func 设置列 */$obpe->getactivesheet()->setcellvalue('A'.$k, $v[0]);$obpe->getactivesheet()->setcellvalue('B'.$k, $v[1]);$obpe->getactivesheet()->setcellvalue('C'.$k, $v[2]);}//创建⼀个新的⼯作空间(sheet)$obpe->createSheet();$obpe->setactivesheetindex(1);//写⼊多⾏数据foreach($mulit_arr as $k=>$v){$k = $k+1;/* @func 设置列 */$obpe->getactivesheet()->setcellvalue('A'.$k, $v[0]);$obpe->getactivesheet()->setcellvalue('B'.$k, $v[1]);$obpe->getactivesheet()->setcellvalue('C'.$k, $v[2]);}//写⼊类容$obwrite = PHPExcel_IOFactory::createWriter($obpe, 'Excel5');//ob_end_clean();//保存⽂件$obwrite->save('mulit_sheet.xls');//or 以下⽅式/*******************************************直接在浏览器输出*******************************************//**header('Pragma: public');header('Expires: 0');header('Cache-Control:must-revalidate,post-check=0,pre-check=0');header('Content-Type:application/force-download');header('Content-Type:application/vnd.ms-execl');header('Content-Type:application/octet-stream');header('Content-Type:application/download');header("Content-Disposition:attachment;filename='mulit_sheet.xls'");header('Content-Transfer-Encoding:binary');$obwrite->save('php://output');>*/>更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家PHP程序设计有所帮助。
【php】phpExcel使用教程,如何导出excel表格

【php】phpExcel使⽤教程,如何导出excel表格【1】下载phpExcel类⽂件可在官⽅去下载我们只需要classes中的⽂件,把Classes⽂件复制到项⽬中只需要2个⽂件就可以了⼀个就是phpExcel(刚才我们复制过来的⽂件 Classse改成的phpExcel),再⾃⼰创建⼀个⽂件index.php,代码内容如下【1】最基本⽤法--直接可以保存到当前⽂件夹下1 <?php2$dir=dirname('__FILE__'); //找到当前脚本所在路径3require$dir."/phpExcel/PHPExcel.php"; //引⼊⽂件4$objPHPExcel=new PHPExcel(); //实例化PHPExcel类,等同于在桌⾯上创建⼀个ecxel表格5$objSheet=$objPHPExcel->getActiveSheet();//获取当前活动sheet的操作对象6$objSheet->setTitle('dome'); //给当前的活动sheet设置名称7 //填充数据8$objSheet->setCellValue("A1",'姓名')->setCellValue("B1",'年龄'); //给当前活动sheet填充数据9$objSheet->setCellValue("A2",'程镜')->setCellValue("B2",'25');10$objWrite=PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007");//按照指定格式⽣成excel⽂件11$objWrite->save($dir."/demo.xlsx");//保存到当前⽂件夹下12131415 ?>【2】稍微升级了⼀下使⽤⽅法--可以直接再浏览器中下载保存1 <?php2$dir=dirname('__FILE__'); //找到当前脚本所在路径3require$dir."/phpExcel/PHPExcel.php"; //引⼊⽂件4$objPHPExcel=new PHPExcel(); //实例化PHPExcel类,等同于在桌⾯上创建⼀个ecxel表格5 //$objPHPExcel->createSheet(); //创建新的内置表执⾏⼀次创建⼀个新的⼀页6 //$objPHPExcel->setActiveSheetIndex(1);//把新创建的的sheet设定微当前活动sheet7$objSheet=$objPHPExcel->getActiveSheet();//获取当前活动sheet的操作对象8$objSheet->setTitle('dome2'); //给当前的活动sheet设置名称910$arr=array(1112array(),13array('姓名','年龄','职业','⼯资'),14array('程镜','24','程序猿','50000'),15array('⼤神','27','⾼级程序猿','20K'),1617 );18$objSheet->fromArray($arr);//直接加载数据块来实现填充数据1920$objWrite=PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007");//按照指定格式⽣成excel⽂件21 //$objWrite->save($dir."/demo_3.xlsx");//保存到当前⽂件夹下2223 browser_export("Excel2007",'excel.xlsx'); //不保存在当前⽂件夹下,直接输出⾄浏览器24$objWrite->save('php://output'); //保存2526function browser_export($type,$filename){ //声明⼀个⽅法判断保存保存格式27if($type=='Excel5'){28header('Content-Type: application/vnd.ms-excel');29 }else{30header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');31 }32header('Content-Disposition: attachment;filename="'.$filename.'"');//告诉浏览器输出的⽂件名称33header('Cache-Control: max-age=0');//禁⽌缓存34 }353637 ?>。
mpdf excel 转pdf

mPDF是一个PHP库,用于生成PDF文件。
要将Excel文件转换为PDF,您可以先使用PHPExcel或PhpSpreadsheet等库读取Excel文件,然后使用mPDF将读取的内容生成为PDF文件。
下面是一个基本的示例:
首先,确保已经安装了mPDF和PHPExcel/PhpSpreadsheet库。
然后按照以下步骤进行操作:
1.安装mPDF和PHPExcel/PhpSpreadsheet:
通过Composer安装mPDF和PHPExcel/PhpSpreadsheet库,可以使用以下命令:
2.读取Excel文件:
使用PHPExcel/PhpSpreadsheet读取Excel文件的内容,将其存储在变量中。
3.使用mPDF生成PDF文件:
将读取的Excel内容作为HTML字符串传递给mPDF,并将其生成为PDF
文件。
下面是一个简单的示例代码:
在这个例子中,首先使用PhpSpreadsheet读取Excel文件,并将其转换为HTML表格格式。
然后,将HTML内容传递给mPDF实例,使用WriteHTML方法将HTML写入PDF文件中。
最后,使用Output方法将生成的PDF文件直接下载到客户端。
这是一个基本的示例,您可以根据需要对其进行修改和扩展。
php导出excel表格

php导出excel表格⽅式⼀:使⽤PHPExcel类库//引⼊PHPExcel库⽂件(路径根据⾃⼰情况)include './phpexcel/Classes/PHPExcel.php';$excel = new PHPExcel(); //创建对象$letter = array('A','B','C','D','E','F','F','G'); //Excel表格式,这⾥简略写了8列$tableheader = array('学号','姓名','性别','年龄','班级');//表头数组//填充表头信息for($i = 0;$i < count($tableheader);$i++) {$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");}$data = array(array('1','⼩王','男','20','100'),array('2','⼩李','男','20','101'),array('3','⼩张','⼥','20','102'),array('4','⼩赵','⼥','20','103'));//填充表格信息for ($i = 2;$i <= count($data) + 1;$i++) {$j = 0;foreach ($data[$i - 2] as $key=>$value) {$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");$j++;}}$write = new PHPExcel_Writer_Excel5($excel);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type:application/vnd.ms-execl");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename="testdata.xls"');header("Content-Transfer-Encoding:binary");$write->save('php://output');⽅式⼆:简单的PHP导出excel,不适⽤任何外部类库⽂件header("Content-type: text/csv");header("Content-Disposition: attachment; filename=reply.csv");header("Pragma: no-cache");header("Expires: 0");$output = fopen("php://output", "w");$header = array('学号','姓名','性别','年龄','班级');$converter = function($value) {return iconv('utf-8', 'gbk', $value);};$header = array_map($converter, $header);$list = array(array('1','⼩王','男','20','100'),array('2','⼩李','男','20','101'),array('3','⼩张','⼥','20','102'),array('4','⼩赵','⼥','20','103'));fputcsv($output, $header);foreach($list as $k => $v){$csvrow = array_map($converter, array($v[0],$v[1],$v[2],$v[3],$v[4],));fputcsv($output, $csvrow); }fclose($output);。
PHP使用PHPexcel导入导出数据的方法

PHP使⽤PHPexcel导⼊导出数据的⽅法本⽂实例讲述了PHP使⽤PHPexcel导⼊导出数据的⽅法。
分享给⼤家供⼤家参考,具体如下:导⼊数据:<?phperror_reporting(E_ALL); //开启错误set_time_limit(0); //脚本不超时date_default_timezone_set('Europe/London'); //设置时间/** Include path **/set_include_path(get_include_path() . PATH_SEPARATOR . 'https:///../Classes/');//设置环境变量/** PHPExcel_IOFactory */include 'PHPExcel/IOFactory.php';//$inputFileType = 'Excel5'; //这个是读 xls的$inputFileType = 'Excel2007';//这个是计xlsx的//$inputFileName = './sampleData/example2.xls';$inputFileName = './sampleData/book.xlsx';echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory with a defined reader type of ',$inputFileType,'<br />'; $objReader = PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel = $objReader->load($inputFileName);/*$sheet = $objPHPExcel->getSheet(0);$highestRow = $sheet->getHighestRow(); //取得总⾏数$highestColumn = $sheet->getHighestColumn(); //取得总列*/$objWorksheet = $objPHPExcel->getActiveSheet();//取得总⾏数$highestRow = $objWorksheet->getHighestRow();//取得总列数echo 'highestRow='.$highestRow;echo "<br>";$highestColumn = $objWorksheet->getHighestColumn();$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数echo 'highestColumnIndex='.$highestColumnIndex;echo "<br />";$headtitle=array();for ($row = 1;$row <= $highestRow;$row++){$strs=array();//注意highestColumnIndex的列数索引从0开始for ($col = 0;$col < $highestColumnIndex;$col++){$strs[$col] =$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();}$info = array('word1'=>"$strs[0]",'word2'=>"$strs[1]",'word3'=>"$strs[2]",'word4'=>"$strs[3]",);//在这⼉,你可以连接,你的数据库,写⼊数据库了print_r($info);echo '<br />';}>导出数据:(如果有特殊的字符串 = ⿇烦 str_replace(array('='),'',$val['roleName']);)private function _export_data($data = array()){error_reporting(E_ALL); //开启错误set_time_limit(0); //脚本不超时date_default_timezone_set('Europe/London'); //设置时间/** Include path **/set_include_path(FCPATH.APPPATH.'/libraries/Classes/');//设置环境变量// Create new PHPExcel objectInclude 'PHPExcel.php';$objPHPExcel = new PHPExcel();// Set document properties$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");// Add some data$letter = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); if($data){$i = 1;foreach ($data as $key => $value) {$newobj = $objPHPExcel->setActiveSheetIndex(0);$j = 0;foreach ($value as $k => $val) {$index = $letter[$j]."$i";$objPHPExcel->setActiveSheetIndex(0)->setCellValue($index, $val);$j++;}$i++;}}$date = date('Y-m-d',time());// Rename worksheet$objPHPExcel->getActiveSheet()->setTitle($date);$objPHPExcel->setActiveSheetIndex(0);// Redirect output to a client's web browser (Excel2007)header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$date.'.xlsx"');header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save('php://output');exit;}直接上代码:public function export_data($data = array()){# code...include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ;include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/Excel5.php') ;include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel.php') ;include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/IOFactory.php') ;$obj_phpexcel = new PHPExcel();$obj_phpexcel->getActiveSheet()->setCellValue('a1','Key');$obj_phpexcel->getActiveSheet()->setCellValue('b1','Value');if($data){$i =2;foreach ($data as $key => $value) {# code...$obj_phpexcel->getActiveSheet()->setCellValue('a'.$i,$value);$i++;}}$obj_Writer = PHPExcel_IOFactory::createWriter($obj_phpexcel,'Excel5');$filename = "outexcel.xls";header("Content-Type: application/force-download");header("Content-Type: application/octet-stream");header("Content-Type: application/download");header('Content-Disposition:inline;filename="'.$filename.'"');header("Content-Transfer-Encoding: binary");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Pragma: no-cache");$obj_Writer->save('php://output');}希望本⽂所述对⼤家php程序设计有所帮助。
使用PHPExcel导出Excel表

使⽤PHPExcel导出Excel表本⽂实例为⼤家分享了PHPExcel导出Excel表的具体代码,供⼤家参考,具体内容如下/*** Excel导出* @param $fileName(⽂件名)* @param $headArr (表头)* @param $data (每⼀⾏的数据)* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception*/function getExcel($fileName,$headArr,$data){include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel.php");include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel2007.php");include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel5.php");include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/IOFactory.php");if(empty($data) || !is_array($data)){die("data must be a array");}if(empty($fileName)){exit;}$date = date("Y_m_d",time());$fileName .= "_{$date}.xlsx";//创建新的PHPExcel对象$objPHPExcel = new \PHPExcel();$objProps = $objPHPExcel->getProperties();//设置表头$key = ord("A");$key2 = ord("A");$colum2 = '';$objActSheet = $objPHPExcel->getActiveSheet();$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);foreach($headArr as $v){$colum = chr($key);$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum2.$colum.'1', $v);if($key < 90){$key += 1;}else{$key = ord("A");$colum2 = chr($key2);$key2++;}}//exit;$column = 2;foreach($data as $key => $rows){ //⾏写⼊$span = ord("A");$span2 = ord("A");$j2 = '';foreach($rows as $keyName=>$value){// 列写⼊$j = chr($span);//$objActSheet->setCellValue($j.$column, $value);//把每个单元格设置成分⽂本类型//dump($j2.$j.$column);$objActSheet->setCellValueExplicit($j2.$j.$column,$value,\PHPExcel_Cell_DataType::TYPE_STRING); if($span < 90){$span += 1;}else{$span = ord("A");$j2 = chr($span2);$span2++;}}$column++;}// exit;$fileName = iconv("utf-8", "gb2312", $fileName);//重命名表$objPHPExcel->getActiveSheet()->setTitle('Simple');//设置活动单指数到第⼀个表,所以Excel打开这是第⼀个表$objPHPExcel->setActiveSheetIndex(0);//将输出重定向到⼀个客户端web浏览器(Excel2007)header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header("Content-Disposition: attachment; filename=\"$fileName\"");header('Cache-Control: max-age=0');$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');// if(!empty($_GET['excel'])){// $objWriter->save('php://output'); //⽂件通过浏览器下载// }else{// $objWriter->save($fileName); //脚本⽅式运⾏,保存在当前⽬录// }$objWriter->save('php://output');exit;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
[phpexcel]PHP导出EXCEL快速开发指南
![[phpexcel]PHP导出EXCEL快速开发指南](https://img.taocdn.com/s3/m/fea99b77f242336c1eb95e83.png)
[phpexcel]PHP导出EXCEL快速开发指南phpexcel有专有的开发文档,详细操作请参考其开发文档,本文档只是对其在使用上作了优化整合,便于在新项目中快速开发。
phpexcel生成文件同样有两种方式,一种方式为直接输出,一种方式为生成静态文件。
直接输出:主文件为(class目录的同目录文件):<?phpinclude("./class/class.php"); // 包含class的基本头文件include("./class/phpexcel/PHPExcel.php"); // 生成excel的基本类定义(注意文件名的大小写)// 如果直接输出excel文件,则要包含此文件include("./class/phpexcel/PHPExcel/IOFactory.php");// 创建phpexcel对象,此对象包含输出的内容及格式$m_objPHPExcel = new PHPExcel();// 模板文件,为了实现格式与内容分离,有关输出文件具体内容实现在模板文件中// 模板文件将对象$m_objPHPExcel进行操作include("./include/excel.php");// 输出文件的类型,excel或pdf$m_exportType = "excel";$m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 输出EXCEL文件名$m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 输出PDF文件名// PHPExcel_IOFactory, 输出excel//require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory.php';// 如果需要输出EXCEL格式if($m_exportType=="excel"){$objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'Excel5');// 从浏览器直接输出$m_strOutputExcelFileNameheader("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type: application/vnd.ms-excel;");header("Content-Type:application/octet-stream");header("Content-Type:application/download");header("Content-Disposition:attachment;filename=".$m_strOutputExcelFileName); header("Content-Transfer-Encoding:binary");$objWriter->save("php://output");}// 如果需要输出PDF格式if($m_exportType=="pdf"){$objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'PDF'); $objWriter->setSheetIndex(0);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type: application/pdf");header("Content-Type:application/octet-stream");header("Content-Type:application/download");header("Content-Disposition:attachment;filename=".$m_strOutputPdfFileName); header("Content-Transfer-Encoding:binary");$objWriter->save("php://output");}?>模板文件内容(附加常用操作)<?phpglobal $m_objPHPExcel; // 由外部文件定义// 设置基本属性$m_objPHPExcel->getProperties()->setCreator("Sun Star Data Center")->setLastModifiedBy("Sun Star Data Center")->setTitle("Microsoft Office Excel Document")->setSubject("Test Data Report -- From Sunstar Data Center")->setDescription("LD Test Data Report, Generate by Sunstar Data Center")->setKeywords("sunstar ld report")->setCategory("Test result file");// 创建多个工作薄$sheet1 = $m_objPHPExcel->createSheet();$sheet2 = $m_objPHPExcel->createSheet();// 通过操作索引即可操作对应的工作薄// 只需设置要操作的工作簿索引为当前活动工作簿,如// $m_objPHPExcel->setActiveSheetIndex(0);// 设置第一个工作簿为活动工作簿$m_objPHPExcel->setActiveSheetIndex(0);// 设置活动工作簿名称// 如果是中文一定要使用iconv函数转换编码$m_objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', '测试工作簿'));// 设置默认字体和大小$m_objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '宋体'));$m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10);// 设置一列的宽度$m_objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);// 设置一行的高度$m_objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30);// 合并单元格$m_objPHPExcel->getActiveSheet()->mergeCells('A1:P1');// 定义一个样式,加粗,居中$styleArray1 = array('font' => array('bold' => true,'color'=>array('argb' => '00000000',),),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,),);// 将样式应用于A1单元格$m_objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray1);// 设置单元格样式(黑色字体)$m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->getColor()->setARGB(PHPExcel_St yle_Color::COLOR_BLACK); // 黑色// 设置单元格格式(背景)$m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff9 9cc'); // 将背景设置为浅粉色// 设置单元格格式(数字格式)$m_objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()->setFormatCode('0.000');// 给特定单元格中写入内容$m_objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby');// 设置单元格样式(居中)$m_objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setHorizontal(PHPExcel_Sty le_Alignment::HORIZONTAL_CENTER);// 给单元格中放入图片, 将数据图片放在J1单元格内$objDrawing = new PHPExcel_Worksheet_Drawing();$objDrawing->setName('Logo');$objDrawing->setDescription('Logo');$objDrawing->setPath("../logo.jpg"); // 图片路径,只能是相对路径$objDrawing->setWidth(400); // 图片宽度$objDrawing->setHeight(123); // 图片高度$objDrawing->setCoordinates('J1');$objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet());// 设置A5单元格内容并增加超链接$m_objPHPExcel->getActiveSheet()->setCellValue('A5', iconv('gbk', 'utf-8', '超链接'));$m_objPHPExcel->getActiveSheet()->getCell('A5')->getHyperlink()->setUrl('http://www.keiyi.co m/');?>在服务器端生成静态文件相比直接生成,这两种方法的主要区别是生成格式的不同,模板文件完全相同,下边是一个在上例基础上更改后的样子,注意与上例的区别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这篇文章主要介绍了PHPExcel笔记, mpdf导出,需要的朋友可以参考下phpexcel常用处理##导入类库require 'PHPExcel/Classes/PHPExcel.php';require 'PHPExcel/Classes/PHPExcel/Writer/Excel5.php'; //非07格式的写出类##基础属性设定$objPHPExcel = \PHPExcel_IOFactory::load('a.xls'); //读入指定excel文件$objPHPExcel->setActiveSheetIndex(0); //指定活动工作表$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('宋体');$objPHPExcel->getProperties()->setTitle('xxx');##单元格编辑$objPHPExcel->getActiveSheet()->setCellValue('A3', 'xxx'); //设定A3单元格值为xxx##单元格绘图$objDrawing = new \PHPExcel_Worksheet_Drawing();$objDrawing->setPath('a.jpg'); //指定图片路径。
若要远程图片需PHPExcel/Classes/PHPExcel/Worksheet/Drawing.php:106处file_exists换成file_get_contents $objDrawing->setCoordinates('A4'); //指定在A4单元格绘图$objDrawing->setName('Photo');$objDrawing->setDescription('Photo');$objDrawing->setHeight(120);$objDrawing->setWidth(100);$objDrawing->setOffsetX(7);$objDrawing->setOffsetY(7);$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());##excel文件浏览器下载导出$filename='a.xls';$encoded_filename = rawurlencode($filename);$ua = $_SERVER["HTTP_USER_AGENT"];header('Content-type: application/vnd.ms-excel');if (preg_match("/MSIE/", $ua) || preg_match("/Trident\/7.0/", $ua) || preg_match("/Edge/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');} else if (preg_match("/Firefox/", $ua)) { header("Content-Disposition: attachment; filename*=\"utf8''" . $filename . '"');} else { header('Content-Disposition: attachment; filename="' . $filename . '"');}header("Pragma:no-cache");header("Expires:0");$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');##excel文件html显示(可用于调试)$objWriter = new \PHPExcel_Writer_HTML($objPHPExcel);$objWriter->save('php://output');利用mpdf库从phpexcel导出pdf文件$filename='a.pdf';$encoded_filename = rawurlencode($filename);$rendererName = \PHPExcel_Settings::PDF_RENDERER_MPDF; //指定通过mpdf类库导出pdf文件$rendererLibraryPath = 'PHPExcel/MPDF57'; //指定你下载的mpdf类库路径if (!\PHPExcel_Settings::setPdfRenderer( $rendererName, $rendererLibraryPath)) { die( 'Please set the $rendererName and $rendererLibraryPath values' . PHP_EOL . ' as appropriate for your directory structure' );}header('Content-type: application/pdf');if (preg_match("/MSIE/", $ua) || preg_match("/Trident\/7.0/", $ua) || preg_match("/Edge/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');} else if (preg_match("/Firefox/", $ua)) { header("Content-Disposition: attachment; filename*=\"utf8''" . $file_name . '"');} else { header('Content-Disposition: attachment; filename="' . $file_name . '"');}header("Pragma:no-cache");header("Expires:0");$objWriter = new \PHPExcel_Writer_PDF($objPHPExcel);$objWriter->setPreCalculateFormulas(false);$objWriter->save('php://output');################################pdf导出失败的一些错误解决方法################################1 pdf中文乱码问题PHPExcel/Classes/PHPExcel/Writer/PDF/mPDF.php:105处加两行设定:$pdf->useAdobeCJK = true;$pdf->SetAutoFont(AUTOFONT_ALL);##2 类库里面多处preg_replace调用使用了元字符e,而部分低版本php不支持正则表达式e元字符e元字符的不当使用并导致pdf报错的触发点在类库里面大概有五六处吧,由于e元字符是一个shell下的子进程php调用,所以报错信息不会反馈到当前php进程中,故即便你配置了错误打印到屏幕,页面也不会显示报错信息,必须查看php报错日志查看php报错日志,把提示的preg_replace中元字符e的调用替换为preg_replace_callback 形式的调用##3 部分版本phpexcel类库有单元格样式判断错误lib/PHPExcel/Classes/PHPExcel/Writer/HTML.php:1236处加个if判断if (!$this->_useInlineCss) { $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex();。