重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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";
?
讲的复杂了啊!
你先在一个完整版的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']);
}
}
1.
这属于php的技术;
2.
php可以用PHPExcel直接导出成excel文件;
代码如下:
require_once("../lib/excelcreator.class.php");
$myxls
=
new
ExcelCreator
("中文Excel");
$aTableHead
=
'
Row
ss:AutoFitHeight="0"
CellData
ss:Type="String"Name3/Data/Cell
CellData
ss:Type="String"Surname3/Data/Cell
/Row';
$aTableBody
=
'
Row
ss:AutoFitHeight="0"
CellData
ss:Type="String"Schwarz3/Data/Cell
CellData
ss:Type="String"Oliver3/Data/Cell
/Row';
$aTableBottom
=
'
Row
ss:AutoFitHeight="0"
CellData
ss:Type="String"123/Data/Cell
CellData
ss:Type="String"Peter3/Data/Cell
/Row';
$workSheet
=
$myxls-createWorkSheet
(
"中文sheet1",
$aTableHead,
$aTableBody,
$aTableBottom
);
echo
$myxls-createExcel
(
$workSheet
);
在导出的数据前面添加英文单引号就可以了,也就是修改下面的语句:
elseif ($row[$i] != "")
$data .= "$row[$i]".$sep;
修改为:
elseif ($row[$i] != "")
$data .= "'$row[$i]".$sep;
注意我的单引号是添加在$row的$之前的。
以下示例读取数据库,并以表格显示:
?php
header('Content-type:text/html;charset=utf-8');
$db = new mysqli('localhost','root','root','books');
$rows = $db-query('SELECT * FROM customers');
echo 'table border="1"trtd姓名/tdtd年龄/td/tr';
while($row = $rows-fetch_assoc()){
echo 'trtd'.$row['name'].'/td';
echo 'td'.$row['address'].'/td/tr';
}
?
如果将数据导出成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);//上下对齐
$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" /
网上有很多人问这个的,回答的人很少,要么是自己解决了不想让其他人知道,要么是不能用,这个是在一直用的,没问题。