模板 自定义view文件夹 中间件 路由和路由函数 自定义多个route文件 session无效 自定义多个公共函数 中间件别名和数据库连接 伪静态 自定义类库extends 以年月日+编号拼接id,且编号每天从0开始 跨域 宝塔面板新建网站403 网页包含过多重定向 缓存 路由绑定子域名 方法参数错误 php导出excel时身份证变成科学技术法 获取路由参数 生成二维码phpqrcode 使用腾讯OCR(扫描) thinkphp6微信支付回调不访问 查询构造器 导入导出excel:安装使用 导入导出Excel:按日期导出 tp6腾讯云短信 thinkphp unserialize(): Error chinese-calendar 将base64保存到本地 向前台输出错误信息

导入导出Excel:按日期导出

首页 > PHP > Thinkphp6 更新日期:2022-09-13 17:34:54

前端

html

<input type="text" id="start_time" value="" placeholder="起始时间" />
<input type="text" id="end_time" value="" placeholder="结束时间" />
<span class="excel_btn cursor">导出</span>

js

// 获取时间
var start_time = $("#start_time").val();
var end_time = $("#end_time").val();
// 使用字符串替换,将日期里的-,替换为任意字母
var start = start_time.replace(/-/g, "a");
var end = end_time.replace(/-/g, "a");
// 提交
$(location).attr("href", "/url"/"+start+"/"+end);

后端

控制器

# 导出excel
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
public function Daochu ($start_time, $end_time) {
    # 将前端替换的字母,重新转化为-
    $start_time_name = str_replace("a", "-", $start_time);
    $end_time_name = str_replace("a", "-", $end_time);
    ......
    $excel = [];
    # 实例化 Spreadsheet 对象
    $spreadsheet = new Spreadsheet();
    # 获取活动工作薄
    $sheet = $spreadsheet->getActiveSheet();
    # 赋值
    $sheet->setCellValue('A1','姓名');
    $sheet->setCellValue('B1','学校');
    
    # 行列
    $num = 2;
    $sheet->fromArray($excel,
       null,
        "A{$num}"    # 数据从哪列哪行开始打印,比如B3就是从B列的第3行开始
    );
       
    # Xlsx类 将电子表格保存到文件
    # 文件名
    $typeName = "";
            
    // 客户端文件下载
    header('Content-Type:application/vnd.ms-excel');
    header("Content-Disposition:attachment;filename={$typeName}.xls");
    header('Cache-Control:max-age=0');
    $writer = IOFactory::createWriter($spreadsheet, 'Xls');
    $writer->save('php://output');
}


标题导航