我之前不会导出的时候,各种找DEMO啊,案例啊,然后结果还是没实现功能,一方面可能我太笨,另一方面,就是,感觉对于小白,估计要做到(诶,你这个复制代码到这里,这个文件放在这里,这里改一下就可以了)这样的地步,可能大神在发帖的时候无意识的忽略了一点小细节(而这恰恰确实是现在快餐式的程序员培训出来的弱项,当然也包括我),所以,我按我自己小白式的理解来写这个贴,但愿其他小白万一能看到这个,也能应应急,毕竟,我以前只会套用,现在,再看多少有些懂了,小白们还是需要时间积累和代码积累的,加油!
既然是PHPExcel 导出(我现在只先说导出),当然需要这个文件了,拿去(http://phpexcel.codeplex.com/)
下载好后,放在哪里呢?一般TP会有放在第三方类库(指除了 ThinkPHP 框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty、Zend 等系统的类库等...)一般在ThinkPHP/Library/Vender
放在这下面.
然后是要复制下面这段代码前后端文件同级下的Common下的function.php/**<br>
* 导出到EXCEL <br>
* @param type $expTitle<br>
* @param type $expCellName<br>
* @param type $expTableData<br>
*/<br>
function exportExcel($expTitle, $expCellName, $expTableData) {<br>
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle); //文件名称<br>
$fileName = $expTitle . date('_YmdHis'); //or $xlsTitle 文件名称可根据自己情况设定<br>
$cellNum = count($expCellName);<br>
$dataNum = count($expTableData);<br>
<br>
vendor("PHPExcel");<br>
<br>
$objPHPExcel = new \PHPExcel();<br>
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');<br>
// $objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1'); //合并单元格<br>
for ($i = 0; $i
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '1', $expCellName[$i][1]);<br>
}<br>
// Miscellaneous glyphs, UTF-8<br>
for ($i = 0; $i
for ($j = 0; $j
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 2), $expTableData[$i][$expCellName[$j][0]]);<br>
}<br>
}<br>
<br>
header('pragma:public');<br>
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');<br>
header("Content-Disposition:attachment;filename=$fileName.xls"); //attachment新窗口打印inline本窗口打印<br>
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');<br>
$objWriter->save('php://output');<br>
exit;<br>
}
vendor("PHPExcel");上面代码的这个,如果你文件不是放这里,记得要改。
这里补充一下,就是需要导出加自定义样式(比如导出文本带点颜色标记之类的)就要在这里面添加了,这里有注释掉的一段代码,就像这样(这个也不用自己写?网址给你,你要的都在这里。http://blog.csdn.net/diandian_520/article/details/7827038,记得注意换哪几行几列)
当然,这个是公用的导出函数,所以,如果要导出几个另类的表格,就要再复制上面的代码,改下名称再调用就行了。
接下来是C的代码/*<br>
* 测试<br>
*/<br>
public function text(){<br>
//获取所需数据<br>
$res=M('order')->select();<br>
$export=I('export');//触发导出指令的值<br>
if($export==1){ <br>
$xlsName="订单列表";//表名<br>
$xlsCell = array( //这里是写字段名称的<br>
array('ddh','订单号') ,<br>
array('xdsj','下单时间') ,<br>
array('dgje','订购金额') , <br>
array('yhje','优惠金额') ,<br>
);<br>
$xlsData=array(); <br>
foreach ($res as $key=>$val){<br>
array_push($xlsData, array(//这里的需要导出的内容,要注意键名跟上面的字段键名要一致<br>
'ddh'=>" ".$val[ordersn],<br>
'xdsj'=>date('Y-m-d H:i:s',$val[createtime]),<br>
'dgje'=>$val[fee],<br>
'yhje'=>$val[discountprice],<br>
));<br>
} <br>
exportExcel($xlsName,$xlsCell,$xlsData);//这里就是调用写在function里的函数了。<br>
die(); <br>
}
OK,大功告成,赶紧试一下吧!!!
(感觉漏了点什么,有大神发现问题或者有更好的方法,欢迎补充,调教下我们这群小白。谢谢。。。)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。