❶ PHP如何导入导出Excel
最近在PHP培训学习过程中,需要开发一个模块,把系统中的一些数据导出成Excel,修改后再导回系统。就趁机对这个研究了一番,下面进行一些总结。虽然我们在平时用的也有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了。但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了。基本上导出的文件分为两种:1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。优点:简单。缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:$yourStr = mb_convert_encoding(”gb2312″, “UTF-8″, $yourStr);下面详细列举几种方法。1:利用smarty,生成符合Excel规范的XML或HTML文件支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。详细内容请见rardge大侠的帖子:http://bbs.chinaunix.net/viewthread.php?tid=745757需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5″ ss:ExpandedRowCount=”21″”之类的东西删掉。2、利用pack函数打印出模拟Excel格式的断句符号,这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。缺点是无格式。PHP代码<?php // Send Header 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/octet-stream”); header(”Content-Type: application/download”);; header(”Content-Disposition: attachment;filename=test.xls “); header(”Content-Transfer-Encoding: binary “); // XLS Data Cell xlsBOF(); xlsWriteLabel(1,0,”My excel line one”); xlsWriteLabel(2,0,”My excel line two : “); xlsWriteLabel(2,1,”Hello everybody”); xlsEOF(); function xlsBOF() { echo pack(”ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0); return; } function xlsEOF() { echo pack(”ss”, 0×0A, 0×00); return; } function xlsWriteNumber($Row, $Col, $Value) { echo pack(”sssss”, 0×203, 14, $Row, $Col, 0×0); echo pack(”d”, $Value); return; } function xlsWriteLabel($Row, $Col, $Value ) { $L = strlen($Value); echo pack(”ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L); echo $Value; return; } ?> 不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。3、使用制表符、换行符的方法 制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行。 <?php header(”Content-Type: application/vnd.ms-execl”); header(”Content-Disposition: attachment; filename=myExcel.xls”); header(”Pragma: no-cache”); header(”Expires: 0″); /*first line*/ echo “hello”.”\t”; echo “world”.”\t”; echo “\t\n”; /*start of second line*/ echo “this is second line”.”\t”; echo “Hi,pretty girl”.”\t”; echo “\t\n”;
❷ 在php生成excel文档时怎样设定字体大小
PHP生成EXCEL有多种方法,不知道你的程序是用的哪种方法,各种方法的处理不一样。最简单的生产的<TAB>或者逗号分割的文本,这类文件无法设置格式。有的PHP实际上是生产的HTML,可以使用HTML代码控制格式,比如<FONTCOLOR=XXXSIZE=X>。有的PHP实际上是生产的XML,这类可以在CSS里面设置格式。有的PHP是调用COM直接生成真正的EXCEL文件,这类程序可以使用COM调用设置格式,可以新打开一个EXCEL,用录制宏的办法获取设置字体大小的语句。
❸ PHP如何导出当前页面中的表格至Excel
1.这属于php的技术;2.php可以用PHPExcel直接导出成excel文件;代码如下:require_once("../lib/excelcreator.class.php"); $myxls=newExcelCreator("中文Excel"); $aTableHead='<Rowss:AutoFitHeight="0"><Cell><Datass:Type="String">Name3</Data></Cell><Cell><Datass:Type="String">Surname3</Data></Cell> </Row>'; $aTableBody='<Rowss:AutoFitHeight="0"><Cell><Datass:Type="String">Schwarz3</Data></Cell><Cell><Datass:Type="String">Oliver3</Data></Cell> </Row>'; $aTableBottom='<Rowss:AutoFitHeight="0"><Cell><Datass:Type="String">123</Data></Cell><Cell><Datass:Type="String">Peter3</Data></Cell> </Row>'; $workSheet=$myxls->createWorkSheet("中文sheet1",$aTableHead,$aTableBody,$aTableBottom); echo$myxls->createExcel($workSheet);
❹ PHP 当前表单数据保存为excel文件
构造函数:function down_xls($data, $keynames, $name='dataxls') {$xls[] = "<html><meta http-equiv=content-type content=\"text/html; charset=UTF-8\"><body><table border='1'>";$xls[] = "<tr><td>ID</td><td>" . implode("</td><td>", array_values($keynames)) . '</td></tr>';foreach($data As $o) {$line = array(++$index);foreach($keynames AS $k=>$v) {$line[] = $o[$k];}$xls[] = '<tr><td>'. implode("</td><td>", $line) . '</td></tr>';}$xls[] = '</table></body></html>';$xls = join("\r\n", $xls);header('Content-Disposition: attachment; filename="'.$name.'.xls"');die(mb_convert_encoding($xls,'UTF-8','UTF-8'));}函数引用:if(strval($_GET['download'])){$orders = DB::LimitQuery('order', array('condition' => $condition,'order' => 'ORDER BY id DESC',)); if (!$orders) die('没有符合条件的记录');$name = 'order_'.date('Ymd');$kn = array( //excel表列名与数据字段的对应关系'id' => '订单号','price' => '订单金额','card' => '代金券','create_time' => '下单时间','pay_time' => '付款时间',);foreach( $orders AS $one ){$one['create_time'] =date("Y-m-d",$one['create_time']);$one['pay_time']=date("Y-m-d",$one['pay_time']);$eorders[] = $one;}down_xls($eorders, $kn, $name);}
❺ PHP如何将查询出来的数据导出成excel表格(最好做一个按钮)
如果将数据导出成excel,需要用到PHPExcel,这个可以网络一下。
要实现这个功能,代码是比较多的,下面是我的代码,肯定不能兼容你的,需要修改。
if($_POST["outputExcelBtn"]){define('EOL',(PHP_SAPI=='cli')?PHP_EOL:'<br/>');require_once'PHPExcel/Classes/PHPExcel.php';$objPHPExcel=newPHPExcel();$objPHPExcel->getProperties()->setCreator("CG")->setLastModifiedBy("CG")->setTitle("CG")->setSubject("CG")->setDescription("CG")->setKeywords("CG")->setCategory("CG");$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')->setSize(10);$objPHPExcel->getActiveSheet()->setCellValue('A1','编号')->setCellValue('B1','产品名字')->setCellValue('C1','产品属性')->setCellValue('D1','添加日期');$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);$i=2;while($f=$rs->movenext()){//这里是查询数据的代码,请用你自己的(本程序由[且听风吟福利吧3tii.com]提供)$objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$f["p_num"])->setCellValue('B'.$i,$f["p_name"])->setCellValue('C'.$i,$f["p_pra"])->setCellValue('D'.$i,date('Y-m-d',$f["p_date"]));$objPHPExcel->getActiveSheet()->getStyle('A'.$i.':D'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$i++;}$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//上下对齐$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//左右对齐$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFill()->getStartColor()->setARGB('FF808080');$objPHPExcel->getActiveSheet()->setTitle('产品表');//重命名工作表$objPHPExcel->setActiveSheetIndex(0);//设置打开excel时显示的工作表$callStartTime=microtime(true);$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');$filename='PDT'.(date('Y-m-d'));$objWriter->save(PATH_CREATE.iconv('utf-8','gb2312',$filename).'.xls');$objPHPExcel=PHPExcel_IOFactory::load(PATH_CREATE.iconv('utf-8','gb2312',$filename).'.xls');$notice='导出Excel成功,文件名为<spanclass="red">'.$filename.'.xls</span>,<ahref="'.$filename.'.xls">【点此下载】</a>';}
因为你说的需要有一个按钮触发事件,所以outputExcelBtn就是按钮名字
<inputtype="submit"name="outputExcelBtn"value="导出excel"/>
网上有很多人问这个的,回答的人很少,要么是自己解决了不想让其他人知道,要么是不能用,这个是在一直用的,没问题。
❻ 如何使用PHP导出csv和excel文件
(一)phpexcel文件导出: 步骤1,引入文件require APPPATH.'/libraries/PHPExcel.PHP'; 步骤2, 实例化PHPEXCEL对象 $objPHPExcel=new PHPExcel(); 步骤3, 设置表头 $column = array('A','B','C'); $line = array('词语','频次','词性'); //填充表头信息 for($i = 0;$i < count($tableheader_all);$i++) { $objPHPExcel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]"); //上一行中"$letter[$i]1"表示第“1”行第“$i”列 } 步骤4, 填充数据 for ($i = 2;$i <= count($data) + 1;$i++) {//因为内容是从第二行开始的,所以i=2表示从第二行开始填充数据 $j = 0; foreach ($tmp as $key=>$val ){ $objPHPExcel->getActiveSheet()->setCellValue("$letter[$j]$i",$data[$i-2][$val]); //数据是从第一条开始但是i的初值是2所以想从第一条开始应该是$data[$i-2]开始 $j++; } } 步骤5,写进excel中并输出 $write = new PHPExcel_Writer_Excel5($objPHPExcel); 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="数据导出_词云图.xls"'); header("Content-Transfer-Encoding:binary"); $write->save('php://output');(一)CSV文件导出: csv文件导出最令人头疼的问题就是编码问题,现在分享一下我的经验 首先看服务器是Linux的还是windows的 如果是windows的服务器那么编码问题只能借助于mb_convert_encoding()或者是iconv两个函数相互转换中文编码 如果服务器是linux的 那么很简单 utf-8: setlocale(LC_ALL, ‘en_US.UTF-8′); 简体中文:setlocale(LC_ALL, ‘zh_CN'); 下面来说csv导出步骤: $result = mysql_query("select * from student order by id asc"); $str = "姓名,性别,年龄\n"; $str = iconv('utf-8','gb2312',$str); while($row=mysql_fetch_array($result)){ $name = iconv('utf-8','gb2312',$row['name']); //中文转码 $sex = iconv('utf-8','gb2312',$row['sex']); $str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开 } $filename = date('Ymd').'.csv'; //设置文件名 export_csv($filename,$str); //导出 要将数据导出到本地即下载,需要修改header信息,代码如下: function export_csv($filename,$data) { header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=".$filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); echo $data; }
❼ PHP如何导出Excel文件
昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPExcel。下面是一个简单的demo,分享给大家,希望可以帮到有同样需求的朋友。1.网络:phpexcel,结果如图所示,点击第一个结果;PHP导出Excel,PHP输入Excel2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;PHP导出Excel,PHP输入ExcelPHP导出Excel,PHP输入Excel3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;PHP导出Excel,PHP输入Excel4.//引入PHPExcel库文件(路径根据自己情况)include './phpexcel/Classes/PHPExcel.php';//创建对象$excel = new PHPExcel();//Excel表格式,这里简略写了8列$letter = array('A','B','C','D','E','F','F','G');//表头数组$tableheader = array('学号','姓名','性别','年龄','班级');//填充表头信息for($i = 0;$i < count($tableheader);$i++) {$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");}PHP导出Excel,PHP输入Excel5.//表格数组$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++;}}PHP导出Excel,PHP输入Excel6.//创建Excel输入对象$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,PHP输入Excel7.打开页面,刷新的时候会弹出对话框,让你选择文件保存路径和文件名称,我直接放在了桌面上,如图所示;PHP导出Excel,PHP输入ExcelPHP导出Excel,PHP输入Excel8.打开表格后,数据和格式跟代码中的一致,说明PHP导出的Excel是正确的。如果出现错误,检查一下你的表格数组和数据数组吧。PHP导出Excel,PHP输入Excel
❽ 怎么用php把查询出来的文件导出成excel表格的形式
用PHP EXCEL插件吧。class ExcelToArrary extends Service{ public function __construct() { /*导入phpExcel核心类 注意 :你的路径跟我不一样就不能直接复制*/ include_once('./Excel/PHPExcel.php'); } /* 导出excel函数*/ public function push($data,$name='Excel'){ error_reporting(E_ALL); date_default_timezone_set('Europe/London'); $objPHPExcel = new PHPExcel(); /*以下是一些设置 ,什么作者 标题啊之类的*/ $objPHPExcel->getProperties()->setCreator("转弯的阳光") ->setLastModifiedBy("转弯的阳光") ->setTitle("数据EXCEL导出") ->setSubject("数据EXCEL导出") ->setDescription("备份数据") ->setKeywords("excel") ->setCategory("result file"); /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/ foreach($data as $k => $v){ $num=$k+1; $objPHPExcel->setActiveSheetIndex(0) //Excel的第A列,uid是你查出数组的键值,下面以此类推 ->setCellValue('A'.$num, $v['uid']) ->setCellValue('B'.$num, $v['email']) ->setCellValue('C'.$num, $v['password']) } $objPHPExcel->getActiveSheet()->setTitle('User'); $objPHPExcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$name.'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; }
❾ php怎样生成excel表格 – 技术问答
如果楼主想生成一个固定格式的excel表格的话,可以现在excel里面做好,然后另存为网页格式,然后你在Dreamweaver中打开看这段代码,然后在这段代码的最开头的部分添加以下两句语句最后将这个改动的代码保存为PHP文件即可使用还有这个做法有个小Bug。就是在报表开头会输出“–>”,不知道为什么,请其他高手解释一下 查看原帖>>
未经允许不得转载:山九号 » php生成excel文件|PHP如何将查询出来的数据导出成excel表格(最好做一个按钮)