php excel 导入配置,Thinkphp3.2.3整合PHPexcel进行导入导出操作
前端按鈕
導出Excel
AJAX提交
$(function?()?{
$(".excel").on("click",function?()?{
var?data?=?$(".inputcheckbox:checked").map(function?(i,e){return?$(e).val()}).get().join(','),
_url?=?$(this).attr("_href");
$.post(_url,{data:data},function(data){
if?(data.status)?{
window.location.href?=?"{:U(CONTROLLER_NAME.'/excel')}/excid/"+data.excid;
}
},'json');
});
})
控制器方法:
//導出excel
public?function?excel?()?{
//處理勾選內容
if?(IS_AJAX)?{
$this->ajaxReturn(array('excid'=>I('post.data',0),'status'=>1));
}
$excid?=?I('get.excid');
if?(empty($excid))?{
$data?=?$this->feedback->select();?//整表查詢
}?else?{
$data?=?$this->feedback->where(array('id'=>array('IN',explode(",",?$excid))))->select();?//條件查詢
}
$fields?=?$this->feedback->getDbFields();?//獲取數據表?字段
$name?=?C('name')???C('name')?:?'Excel'.date('Y-m-d');?//導出Excel名稱
$this->exportExcel($data,?C('name'),?$fields);?//開始導出
}
//導出方法
public?function?exportExcel($data,?$savefile?=?null,?$title?=?null,?$sheetname?=?'sheet1')?{
Vendor('Excel.PHPExcel');
//若沒有指定文件名則為當前時間戳
if?(is_null($savefile))?{
$savefile?=?time();
}
//若指字了excel表頭,則把表單追加到正文內容前面去
if?(is_array($title))?{
array_unshift($data,?$title);
}
$objPHPExcel?=?new?\PHPExcel();
//Excel內容
$head_num?=?count($data);
foreach?($data?as?$k?=>?$v)?{
$obj?=?$objPHPExcel->setActiveSheetIndex(0);
$row?=?$k?+?1;?//行
$nn?=?0;
foreach?($v?as?$vv)?{
$col?=?chr(65?+?$nn);?//列
$obj->setCellValue($col?.?$row,?$vv);?//列,行,值
$nn++;
}
}
//設置列頭標題
for?($i?=?0;?$i?
$alpha?=?chr(65?+?$i);
$objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setAutoSize(true);?//單元寬度自適應
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getFont()->setName("Candara");??//設置字體
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getFont()->setSize(12);??//設置大小
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getFont()->getColor()->setARGB(\PHPExcel_Style_Color::COLOR_BLACK);?//設置顏色
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);?//水平居中
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);?//垂直居中
$objPHPExcel->getActiveSheet()->getStyle($alpha?.?'1')->getFont()->setBold(true);?//加粗
}
$objPHPExcel->getActiveSheet()->setTitle($sheetname);?//題目
$objPHPExcel->setActiveSheetIndex(0);?//設置當前的sheet
header('Content-Type:?application/vnd.ms-excel');
header('Content-Disposition:?attachment;filename="'?.?$savefile?.?'.xls"');?//文件名稱
header('Cache-Control:?max-age=0');
$objWriter?=?\PHPExcel_IOFactory::createWriter($objPHPExcel,?'Excel2007');?//Excel5?Excel2007
$objWriter->save('php://output');
$this->success("導出Excel成功",U('Feedback/index'));
}
總結
以上是生活随笔為你收集整理的php excel 导入配置,Thinkphp3.2.3整合PHPexcel进行导入导出操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php去掉查询返回的字段序列号,php
- 下一篇: php7 根据日期算星座,php根据日期