strtotime(date('Y-m-d H:i:s',strtotime('+1 month'))) ;当前时间再加一个月的时间戳;
date('Y-m-d',strtotime('+1 month'));当前日期加上一个月的时间;
->paginate(8,false,['query'=>request()->param()]);TP5查询分页传参写法;
excel:
在commmon.php中写一个方法:
<?php
use \think\Request;
function excelExport($fileName = '', $headArr = [], $data = [])
{
$fileName .= "_" . date("Y_m_d", Request::instance()->time()) . ".xls";
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getProperties();
$key = ord("A"); // 设置表头
foreach ($headArr as $v) {
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($data as $key => $rows) { // 行写入
$span = ord("A");
foreach ($rows as $keyName => $value) { // 列写入
$objActSheet->setCellValue(chr($span) . $column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表
$objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename='$fileName'");
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output'); // 文件通过浏览器下载
exit();
}
在控制中写一个方法,下载excel的模板:
public function excel() {
$name='order';
$header=['用户名','省份','订单号','金额','备注'];
$data=[
];
excelExport($name,$header,$data);
}
如果需要将模板里面的数据写入数据库可以再写一个方法:
前提是要将那个excel.xls的文件上传到服务器,服务器再获取到那个文件的数据;
public function batch_upload() {
$files = request()->file('file_stu');
foreach($files as $file){
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->validate(['ext'=>'xls'])->move(ROOT_PATH . 'public' . DS . 'uploads','');
if($info){
// 成功上传后 获取上传信息
Vendor("PHPExcel.IOFactory");
$objPHPExcel = \PHPExcel_IOFactory::load($info->getpathName());
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
// echo "<pre>";
//dump($sheetData);die;
$i=0;
foreach($sheetData as $key=>$val)
{
if($key == '1'){
continue;
}
$arr_p[$i] = array();
$arr_p[$i]['ordertime'] = strtotime(date('Y-m-d H:i:s',strtotime('+1 month'))) ;
foreach($val as $k=>$v)
{
if($k == 'A'){
$arr_p[$i]['username'] = $v;
}else if($k == 'B'){
$arr_p[$i]['province'] = $v;
}else if($k == 'C'){
$arr_p[$i]['ordernum'] = $v;
}else if($k == 'D'){
$arr_p[$i]['money'] = $v;
}else if($k == 'E'){
$arr_p[$i]['beizhu'] = $v;
}
}
$i++;
}
$j=0;
foreach($sheetData as $key=>$val)
{
if($key == '1'){
continue;
}
$arr_u[$j] = array();
foreach($val as $k=>$v)
{
if($k == 'A'){
$arr_u[$j]['username'] = $v;
}
}
$j++;
}
//插入数据
$ret1 = Db::name('main')->insertAll($arr_p);
$ret2 = Db::name('user')->insertAll($arr_u);
if($ret1&&$ret2){
$this->success('上传成功');
}else{
$this->error('产品表上传失败');
}
}else{
// 上传失败获取错误信息
$this->error('文件格式不正确!');
}
}
}
备注:单纯用上面的方法会报错,因为你的项目下没有安装composer的一些文件;按报错信息去百度吧;