您的位置:首页 > 编程语言 > PHP开发

phpexcel 读取含多个sheet的excel,将从数据库中检索出的数据分别写入该excel不同的sheet中 并导出该excel

2012-08-16 11:41 941 查看
下载phpexcel类库,解压将Class文件夹放入项目中。

 

<?php

header("Content-Type:text/html;   charset=utf-8");

header("Cache-Control:no-cache");

 

require_once("/lib/phpmailer/class.phpmailer.php");

require_once("/lib/phpmailer/class.smtp.php");

require_once 'Classes/PHPExcel.php';

require_once 'Classes\PHPExcel\Reader\Excel5.php';

require_once 'Classes/PHPExcel/Writer/Excel2007.php';

require_once 'Classes/PHPExcel/Writer/Excel5.php';

include_once 'Classes/PHPExcel/IOFactory.php';

//连接数据库,自己填入连接内容,这里连接的是mysql

$dbuser="";

$dbpwd="";

$dbhost="";

$dbdatabase="";

$db=mysql_connect($dbhost,$dbuser,$dbpwd);

mysql_query("set names 'gbk'");//这就是指定数据库字符集,一般放在连接数据库后面就行了(非常重要)

mysql_select_db($dbdatabase,$db);

$i=0;

//读取已设置好的excel

$objPHPExcel = PHPExcel_IOFactory::load("excel_mode/dept.xls");//修改为自己的excel路径

 

//这里将数据写入第三个sheet中,每个sheet都设置值,则分别设置

$currentSheet1=$objPHPExcel->getSheet(2);

$mysql_net="select

n.id as '编号',

n.otherserial as '固定资产编号',

l.completename as '部门',

nt.name as '类型',

nm.name as '型号',

n.name as '名称',

m.name as '制造商',

n.comment as '批注',

u.realname as '用户',

u.firstname as '工号'

from glpi_networkequipments n

left join glpi_users u on u.id=n.users_id

left join glpi_locations l on n.locations_id=l.id

left join glpi_manufacturers m on n.manufacturers_id=m.id

left join glpi_networkequipmenttypes nt on n.networkequipmenttypes_id=nt.id

left join glpi_networkequipmentmodels nm on n.networkequipmentmodels_id=nm.id

where n.is_deleted=0   and n.locations_id='".$arr[5]."'

group by n.otherserial

";

$myresult_net=mysql_query($mysql_net,$db);

$i_net=0;

$j_net=1;

while($arr_net=mysql_fetch_array($myresult_net))

{

 /*----------从数据库读取数据--------------------*/

 $number_net=$j_net++;

 $name_net=$arr_net[1];

 $username_net=$arr_net[8];

 $gonghao_net=$arr_net[9];

 $deptment_net=$arr_net[2];

 $leixing_net=$arr_net[3];

 $xinghao_net=$arr_net[4];

 $netname_net=$arr_net[5];

 $make_net=$arr_net[6];

 /*-----------转码-----------*/

 $name_net=iconv("gbk","utf-8", $name_net);

 $username_net=iconv("gbk","utf-8", $username_net);

 $gonghao_net=iconv("gbk","utf-8", $gonghao_net);

 $deptment_net=iconv("gbk","utf-8", $deptment_net);

 $leixing_net=iconv("gbk","utf-8", $leixing_net);

 $xinghao_net=iconv("gbk","utf-8", $xinghao_net);

 $netname_net=iconv("gbk","utf-8", $netname_net);

 $make_net=iconv("gbk","utf-8", $make_net);

 $u1_net=$i_net+3;

 /*----------写入内容-------------*/

 $currentSheet1->getCell('a'.$u1_net)->setValue("$number_net");

 $currentSheet1->getCell('b'.$u1_net)->setValue("$name_net");

 $currentSheet1->getCell('c'.$u1_net)->setValue("$username_net $gonghao_net");

 $currentSheet1->getCell('d'.$u1_net)->setValue("$deptment_net");

 $currentSheet1->getCell('e'.$u1_net)->setValue("$leixing_net");

 $currentSheet1->getCell('f'.$u1_net)->setValue("$xinghao_net");

 $currentSheet1->getCell('g'.$u1_net)->setValue("$netname_net");

 $currentSheet1->getCell('h'.$u1_net)->setValue("$make_net");

 $i_net++;

}

 

//设置第一个sheet中A5的值为“hello world”

$currentSheet2=$objPHPExcel->getSheet(0);

$currentSheet2->getCell('A5')->setValue("hello world");

 

//写入到文件

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

$outputFileName = "excel/dept.xls";//自行设置路径

$objWriter->save($outputFileName);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息