十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果将数据导出成excel,需要用到PHPExcel,这个可以百度一下。
创新互联是一家专业提供长岭企业网站建设,专注与做网站、网站制作、H5开发、小程序制作等业务。10年已为长岭众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
要实现这个功能,代码是比较多的,下面是我的代码,肯定不能兼容你的,需要修改。
if ($_POST["outputExcelBtn"]){
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : 'br /');
require_once 'PHPExcel/Classes/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$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成功,文件名为span class="red"'.$filename.'.xls/span,a href="'.$filename.'.xls"【点此下载】/a';
}
因为你说的需要有一个按钮触发事件,所以outputExcelBtn就是按钮名字
input type="submit" name="outputExcelBtn" value="导出excel" /
网上有很多人问这个的,回答的人很少,要么是自己解决了不想让其他人知道,要么是不能用,这个是在一直用的,没问题。
根据下列编码程序可以。
1./*** 批量导出数据* @param $arr 从数据库查询出来,即要导出的数据* $name excel表歌名*/
2.function expExcel($arr,$name){ require_once 'PHPExcel.php';
3. //实例化 $objPHPExcel = new PHPExcel(); /*右键属性所显示的信息*/
4.$objPHPExcel-getProperties()-setCreator("zxf") // -setLastModifiedBy("zxf") //最后一 -setTitle('数据EXCEL导出') //标题-setSubject('数据EXCEL导出') //主题setDescription('导出数据') //描setKeywords("excel") //标记setCategory("result file"); //类别
5. //设置当前的表格 $objPHPExcel-setActiveSheetIndex(0);// 设置表格第一行显示内容$objPHPExcel-getActiveSheet() -setCellValue('A1', '业主姓名') -setCellValue('B1', '密码')-setCellValue('C1', '手机号码' -setCellValue('D1', '地址')
6.//设置第一行为红色字体 -getStyle('A1:D1')-getFont()-getColor()-setARGB(PHPExcel_Style_Color::COLOR_RED);$key = 1; /*以下就是对处理Excel里的数据。
//思路就是逐行读取 逐行判断,具体看你实际情况。如有错误请更正, 谢谢!
?PHP
$file_name="log.txt";
$fp=fopen($file_name,'r');
$v="";//定义一个空数组
$v="tabletrtd\/tdtd第一次测试\/tdtd第二次测试\/tdtd第三次测试\/td\/tr"
while(!feof($fp))
{
$buffer=fgets($fp,4096);//逐行读取字符串
/*根据读取到的字符串与你的规则进行比较 并 放入相应位置*/
$str = substr($buffer,1,1);//截取第一个符号
switch($str){
case '*':
$v=$v."trtd".$buffer."\/td";
case "第":
$v=$v."td".$buffer."\/td";
default:
$v=$v."\/tr";
}
}
$v=$v."\/table";
echo $v;
fclose($fp);
?
讲的复杂了啊!
你先在一个完整版的PHPExcel之后解压,在“Examples”目录下会找到一大堆例子,根据你的要求这个“01simple-download-xlsx.php”文件就可以了!
注:你先保持“01simple-download-xlsx.php”文件所在的目录位置不要变,测试好了,再改变名,移到别的地方,地方变了的话,文件里的 “require_once dirname(__FILE__) . '/../Classes/PHPExcel.php';”的所在位置也要变!
我们要改动代码很少,如下:
// Add some data
$objPHPExcel-setActiveSheetIndex(0)
-setCellValue('A1', 'Hello')
-setCellValue('B2', 'world!')
-setCellValue('C1', 'Hello')
-setCellValue('D2', 'world!');
// Miscellaneous glyphs, UTF-8
$objPHPExcel-setActiveSheetIndex(0)
-setCellValue('A4', 'Miscellaneous glyphs')
-setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
直接用的我的替换
$objPHPExcel-setActiveSheetIndex(0)//这个就是现实导出的表第一行,有几列是根据你的那张表有几列!
-setCellValue('A1', '单号')
-setCellValue('B1', '标题')
-setCellValue('C1', '内容')
-setCellValue('D1', '序列')
-setCellValue('E1', '数字');
//下面实现的就是建立数据库连接,直接到表,你的连接数据库、表、字段应该与我的不一样,你可以参考
$conn=@mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error());//连接mysql数据库
mysql_select_db("temp",$conn) or die("数据库访问错误".mysql_error());//数据库
mysql_query("set character set gb2312");
mysql_query("set names gb2312");
$sqlgroups="select * from test ";//查询这一张表的条件
$resultgroups=mysql_query($sqlgroups);
$numrows=mysql_num_rows($resultgroups);
if ($numrows0)
{
$count=1;
while($data=mysql_fetch_array($resultgroups))
{
$count+=1;
$l1="A"."$count";
$l2="B"."$count";
$l3="C"."$count";
$l4="D"."$count";
$l5="E"."$count";
$objPHPExcel-setActiveSheetIndex(0)
-setCellValue($l1, $data['id'])//这就是你要导出表的字段、与对应的名称
-setCellValue($l2, $data['title'])
-setCellValue($l3, $data['content'])
-setCellValue($l4, $data['sn'])
-setCellValue($l5, $data['num']);
}
}
php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:
?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost = 'localhost';
$cfg_dbname = 'testdb';
$cfg_dbuser = 'root';
$cfg_dbpwd = 'root';
$cfg_db_language = 'utf8';
// END 配置
//链接数据库
$link = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//选择编码
mysql_query("set names ".$cfg_db_language);
//users表
$sql = "desc users";
$res = mysql_query($sql);
echo "tabletr";
//导出表头(也就是表中拥有的字段)
while($row = mysql_fetch_array($res)){
$t_field[] = $row['Field']; //Field中的F要大写,否则没有结果
echo "th".$row['Field']."/th";
}
echo "/tr";
//导出100条数据
$sql = "select * from users limit 100";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res)){
echo "tr";
foreach($t_field as $f_key){
echo "td".$row[$f_key]."/td";
}
echo "/tr";
}
echo "/table";
?