摘要:我发现最近的项目需要导出表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了一些弯路的,那么现在我就来记录下我这次用框架项目下的导出其实在不同的框架下的导出原理都是差不多的前端导出导
我发现最近的项目需要导出Excel表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了一些弯路的,那么现在我就来记录下我这次用exshop框架项目下的导出(其实在不同的框架下Excel的导出原理都是差不多的)
前端
导出
控制器
// 导出数据
public function export() {
$result = $this->_oaOrderModel->getAllOrderListForManager($this->store_id, $orderSn=null, $buyer_id=null, $buyer_name=null, $consignee=null, $phone=null, $company_name=null, $status=null, $s_time=null, $e_time=null, $page=null, $listRows=null, $execl=true); //这个是获得数据的代码-model里
$orderList = $result["orderList"];
if (!empty($orderList)) {
$j = 1;
$stmt = array();
foreach ($orderList as $val) {
$stmt[$j]["网站ID"] = $val["store_id"];
$stmt[$j]["订单信息"] = $val["order_sn"];
$stmt[$j]["商品信息"] = $val["inventory_sn_count_chinese"];
$stmt[$j]["工艺选择"] = $val["craft_count_chinese"];
$stmt[$j]["商品总数量"] = $val["real_goods_total_count"];
$stmt[$j]["提交日期"] = date("Y-m-d H:i:s",$val["add_time"]);
$stmt[$j]["客户名称"] = $val["company_name"];
$stmt[$j]["联系人"] = $val["consignee"];
$stmt[$j]["联系方式"] = $val["phone_mob"];
$stmt[$j]["订单完成率"] = $val["percentage_complete"];
$stmt[$j]["订单状态"] = $val["statusChinese"];
$j++;
}
$current_path = dirname(__FILE__);
$home_path = dirname($current_path);
require_once ROOT_PATH . "/includes/libraries/PHPExcel.php";
require_once ROOT_PATH . "/includes/libraries/PHPExcel/IOFactory.php";
$objPHPExcel = new PHPExcel(); //这个方法自己下载放到公共方法里
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// 行高
for ($i = 2; $i <= count($stmt); $i++) {
$objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(22);
}
foreach ($stmt as $fid => $fval) {
if ($fid == 1) {
$key = 0;
foreach ($fval as $title => $first) {
//如果一级标题
$objPHPExcel->getActiveSheet()->setCellValue(chr($key + 65) . "1", $title);
$objPHPExcel->getActiveSheet()->getStyle(chr($key + 65) . "1")->getFont()->setBold(true); // 加粗
$key ++;
}
}
$cid = 0;
$row_id = $fid + 1;
foreach ($fval as $cval) {
$objPHPExcel->getActiveSheet()->setCellValue(chr($cid + 65) . (string) ($row_id), $cval);
$cid++;
}
}
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle("Excel表");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
//$objWriter->save("订单列表详细.xls");
//输出到浏览器
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition:inline;filename="订单列表.xls"");
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save("php://output");
}
}
成果图
心得
有时候遇到这些问题可以多思考,多看看它的原理,原理理解了下次做其它的也是会的,但最重要的是要懂得做记录,我们的记忆并没有想象的那么好
注:文章来源雨中笑记录实习期遇到的问题与心得,转载请申明原文
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/97132.html
摘要:我发现最近的项目需要导出表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了一些弯路的,那么现在我就来记录下我这次用框架项目下的导出其实在不同的框架下的导出原理都是差不多的前端导出导 我发现最近的项目需要导出Excel表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了...
摘要:我发现最近的项目需要导出表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了一些弯路的,那么现在我就来记录下我这次用框架项目下的导出其实在不同的框架下的导出原理都是差不多的前端导出导 我发现最近的项目需要导出Excel表的页面非常的多,想来这个也是我们常用的功能了,现在我可以很熟练的导出了,但是记得当时自己第一次导出时还是绕了...
摘要:数据库地址数据库名数据库账号数据库密码需要导出的数据库表名文件名自己改,默认连接数据库失败单元格单元格单元格单元格下面改成你自己数据库对应的字段输出字段的数据到单元格下面改成你自己数据库对应的字段然后访问就可以弹出表格下载了。 数据库内容太多,复制粘贴太麻烦?那就用代码实现把,把代码写好了,导出还不容易吗,访问即可导出。 excel.php 然后访问excel.php就可以弹出表格下...
摘要:数据库地址数据库名数据库账号数据库密码需要导出的数据库表名文件名自己改,默认连接数据库失败单元格单元格单元格单元格下面改成你自己数据库对应的字段输出字段的数据到单元格下面改成你自己数据库对应的字段然后访问就可以弹出表格下载了。 数据库内容太多,复制粘贴太麻烦?那就用代码实现把,把代码写好了,导出还不容易吗,访问即可导出。 excel.php 然后访问excel.php就可以弹出表格下...
阅读 1006·2021-09-06 15:02
阅读 2670·2019-08-30 15:43
阅读 2443·2019-08-30 11:26
阅读 2561·2019-08-26 12:12
阅读 3736·2019-08-23 18:24
阅读 3488·2019-08-23 18:16
阅读 879·2019-08-23 17:02
阅读 2449·2019-08-23 15:34