乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > PHP如何将查询出来的数据导出成excel表格(最好做一个按...-php导出excel表格数据,怎样导出excel表格

PHP如何将查询出来的数据导出成excel表格(最好做一个按...-php导出excel表格数据,怎样导出excel表格

作者:乔山办公网日期:

返回目录:excel表格制作


excel导出网上找个插件。
但是如果excel或者wps是新版的,可以导出为csv,php内置有此方法函数。

如果将数据导出成excel,需要用到PHPExcel,这个可以百度一下。

要实现这个功能,代码是比较多的,下面是我的代码,肯定不能兼容你的,需要修改。

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);//上下7a686964616fe58685e5aeb9331对齐
$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" />

网上有很多人问这个的,回答的人很少,要么是自己解决了不想让其他人知道,要么是不能用,这个是在一直用的,没问题。


许多生成zdExcel的PHP程序,实际上都是生成的HTML代码(使用<table><tr><td>等代码),只是前面用header指定输出的内容是Excel,例如:

header('Content-type: application/excel');
header('Content-Disposition: attachment; filename="mysql.xls"');

讲的复杂了啊!
你先在一个完整版的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', 'éàèùâêîôûëïüÿäöüç');
、、e68a84e799bee5baa6339、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
直接用的我的替换
$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 ($numrows>0)
{
$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']);
}
}

相关阅读

关键词不能为空
极力推荐
  • <em>outlook</em>怎么结合word&#47;<em>excel

  • 没用过outlook+excel+word群发邮件,我都是用的u-mail邮件群发平台来发的,操作比较简单,也可以实现内容个性化。excel,outlook个性化批量发邮件" src="/uploads/tu/857.jpg" style="width: 400px; height

ppt怎么做_excel表格制作_office365_word文档_365办公网