开发直播带货系统Thinkcmf后台的导入导出功能实现方法

直播带货系统顺利运行的基础,是建立在优质的系统之上,而开发者在开发过程中不仅需要顾及到系统前端,后台一样是非常重要的。本文就来简单分享下Thinkcmf后台的导入导出功能是如何实现的。
一、导入

ini_set('memory_limit','1024M'); //设置占用的最大的内存数

if (!empty($_FILES)) { //判断是否有文件传入
$config = array(
'exts' => array('xlsx','xls'), //文件的后缀只能为xlsx、xls
'maxSize' => 3145728000, 
'rootPath' =>"./Data/",
'savePath' => 'upload/Excle/',
'subName' => array('date','Ymd'),
);
$upload = new \Think\Upload($config); //实例化上传
if (!$info = $upload->upload()) {
$this->error($upload->getError());
}
vendor("PHPExcel.PHPExcel");//加载excel的类
$file_name=$upload->rootPath.$info['file']['savepath'].$info['file']['savename'];//这个地方需要注意,需要dump($info)来看具体的信息
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
if ($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
} else if ($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}
$sheet =$objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn =$sheet->getHighestColumn(); //取得总列数
//D('pro_info')->execute('truncate table pro_info'); //每次导入清空原有数据
$arr=array();
for ($i = 2; $i <= $highestRow; $i++) {
$data=array();
$data['name']= $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data['number'] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data['status']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
//看这里看这里,这个位置写数据库中的表名
array_push($arr,$data);
$j++;
}
M("grade")->addAll($arr);
   $this->success('导入成功!本次导入数量'.$j, U('Grade/index'));
 } else {
     $this->error("请选择上传的文件");
 }

二、导出

vendor("PHPExcel.PHPExcel"); //加载类文件
$objPHPExcel = new \PHPExcel(); //创建PHPExcel实例
 
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'ID');
$objPHPExcel->getActiveSheet(0)
->setCellValue('A1', 'ID')
->setCellValue('B1', 'name')
->setCellValue('C1', 'number')
->setCellValue('D1', 'status');
 
/*--------------开始从数据库提取信息插入Excel表中------------------*/
$data=M('grade')->select();
foreach($data as $k=>$v){
$key = $k + 2;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A".$key, $v['id'])
->setCellValue("B".$key, $v['name'])
->setCellValue("C".$key, $v['number'])
->setCellValue("D".$key, $v['status']);
}
$objPHPExcel->getActiveSheet()->setTitle('成功'); //设置sheet的名称
 
/*--------------下面是设置保存路径------------------*/
date_default_timezone_set("Asia/Shanghai");
$date = date("YmdHi");
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$date.'.xls"');
header("Content-Disposition:attachment;filename=$date.xls");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//Excel5为xls格式,excel2007为xlsx格式
$objWriter->save('php://output');//这句话必须要加,否侧会报错

以上就是直播带货系统在开发时关于Thinkcmf后台的导入导出功能实现方法,相关内容后续会不断更新,感兴趣可继续关注。
声明:本文由作者原创,转载请注明出处及原文链接。

发布了149 篇原创文章 · 获赞 60 · 访问量 14万+
展开阅读全文

没有更多推荐了,返回首页

分享到微信朋友圈

×

扫一扫,手机浏览