导出报表

//Controller
//导出报表
public function exportOrderDayWorkloadAction() {
    $warehouseId = $this->_request->getParam("userWarehouse", "");
    $owDate = $this->_request->getParam("dateFrom", "");
    $post = $this->_request->getParam("post", "");
    $combination = array(
        "warehouse_id" => $warehouseId,
        "ow_date" => $owDate,
        "ow_post" => $post,
    );
    Order_Service_OrderWorkload::exportOrderDayWorkload($combination);
}

//Services
/*
* 导出报表
* 
* $combination          array()        条件
*/

public static function exportOrderDayWorkload($combination) {
   $list = 2;
   $row = "";
   $owIdInfo = Order_Service_OrderWorkload::getCombination($combination, "*");
   if (!empty($owIdInfo)) {
       $objPHPExcel = new PHPExcel();
       $sheet = $objPHPExcel->getActiveSheet();
       $sheet->getColumnDimension("B")->setWidth(15);
       $sheet->getColumnDimension("E")->setWidth(20);
       $sheet->getColumnDimension("G")->setWidth(20);
       $sheet->getColumnDimension("H")->setWidth(20);
       $sheet->setCellValue("A1", "序号");
       $sheet->setCellValue("B1", "时间");
       $sheet->setCellValue("C1", "姓名");
       $sheet->setCellValue("D1", "岗位");
       $sheet->setCellValue("E1", "账号开通时间");
       $sheet->setCellValue("F1", "完成总票数");
       $sheet->setCellValue("G1", "仓库");
       $sheet->setCellValue("H1", "订单类型");
       $sheet->setCellValue("I1", "最快(分)");
       $sheet->setCellValue("J1", "平均(分)");
       $sheet->setCellValue("K1", "最慢(分)");
       $sheet->setCellValue("L1", "订单票数");
       $sheet->setCellValue("M1", "超时票数");
       $sheet->setCellValue("N1", "多配");
       $sheet->setCellValue("O1", "错配");
       $sheet->setCellValue("P1", "漏配");

       foreach ($owIdInfo as $value) {
           //岗位
           $name = User_Service_User::getByUserId($value['user_id']);
           $upName = User_Service_Position::getByUpIdS(array("up_id" => $name['up_id']));
           //仓库
           $warehouseNameCn = Warehouse_Service_Warehouse::getById($value['warehouse_id']);
           //订单类型
           if ($value['ow_type'] == 0) {
               $row = "一票一件(A)";
           } else if ($value['ow_type'] == 1) {
               $row = "一票多件单 SKU(B)";
           } else {
               $row = "一票多件多 SKU(C)";
           }
           //订单票数为一票的情况下显示规范
           if ($value['ow_orders'] == 1 && ($value['ow_avg'] > $value['ow_slow'] || $value['ow_overtime_qty'] > 0)) {
               $owFast = $value['ow_slow'];
               $owAvg = $value['ow_slow'];
           } else {
               $owFast = $value['ow_fast'];
               $owAvg = $value['ow_avg'];
           }

           $sheet->setCellValue("A" . $list, $list - 1);
           $sheet->setCellValue("B" . $list, $value['ow_date']);
           $sheet->setCellValue("C" . $list, $value['ow_user_name']);
           $sheet->setCellValue("D" . $list, $upName[0]['up_name']);
           $sheet->setCellValue("E" . $list, $name['create_date']);
           $sheet->setCellValue("F" . $list, $value['ow_total_pickup']);
           $sheet->setCellValue("G" . $list, $warehouseNameCn['warehouse_name_cn']);
           $sheet->setCellValue("H" . $list, $row);
           $sheet->setCellValue("I" . $list, $owFast);
           $sheet->setCellValue("J" . $list, $owAvg);
           $sheet->setCellValue("K" . $list, $value['ow_slow']);
           $sheet->setCellValue("L" . $list, $value['ow_orders']);
           $sheet->setCellValue("M" . $list, $value['ow_overtime_qty']);
           if ($value['ow_post'] == 0) {
               $sheet->setCellValue("N" . $list, $value['ow_more']);
               $sheet->setCellValue("O" . $list, $value['ow_wrong']);
               $sheet->setCellValue("P" . $list, $value['ow_leakage']);
           }
           $list++;
       }
       $objPHPExcel->createSheet();
       $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
       header("Content-Type: application/vnd.ms-excel;charset=utf8");
       header('Content-Disposition: attachment;filename="' . date("Y-m-d") . ' 订单组日工作量报表.xls"');
       $objWriter->save("php://output");
   } else {
       echo "没有数据";
   }
}

//Js
//导出报表
$(".export").click(function () {
    var userWarehouse = $("[name=userWarehouse]").val();
    var data = "userWarehouse/" + userWarehouse +
            "/dateFrom/" + $("[name=dateFrom]").val() +
            "/post/" + $("[name=post]").attr("value");
    window.open("/order/order/export-order-day-workload/" + data);
});
EasyExcel 是一个 Java 的 Excel 操作类库,可以方便地读取、写入 Excel 文件。在 EasyExcel 中,模板导出就是指在 Excel 文件中预定义好的表格,然后将数据填充到表格中并导出为一个新的 Excel 文件。 下面是一个使用 EasyExcel 进行模板导出的示例代码: ```java // 定义模板文件路径 String templateFileName = "template.xlsx"; // 读取模板文件 InputStream inputStream = getClass().getResourceAsStream(templateFileName); ExcelReader reader = EasyExcel.read(inputStream).build(); List<Sheet> sheets = reader.excelExecutor().sheetList(); // 获取第一个 Sheet Sheet sheet = sheets.get(0); // 定义数据 List<User> userList = new ArrayList<>(); userList.add(new User("张三", 18)); userList.add(new User("李四", 20)); userList.add(new User("王五", 22)); // 填充数据 int rowIndex = 2; // 从第3行开始填充数据 for (User user : userList) { Row row = sheet.getRow(rowIndex++); row.getCell(0).setCellValue(user.getName()); row.getCell(1).setCellValue(user.getAge()); } // 导出文件 OutputStream outputStream = new FileOutputStream("output.xlsx"); ExcelWriter writer = EasyExcel.write(outputStream).build(); writer.excelExecutor().sheetList(sheets).write(); writer.finish(); ``` 在上述代码中,我们首先定义了一个模板文件 `template.xlsx`,然后使用 `EasyExcel.read()` 方法读取模板文件并获得所有的 Sheet 对象。接着,我们获取第一个 Sheet 并定义了一些数据,将这些数据填充到 Sheet 中。最后,使用 `EasyExcel.write()` 方法创建一个新的 Excel 文件并将填充好数据的 Sheet 写入到其中,最终导出为文件 `output.xlsx`。 需要注意的是,EasyExcel 中的模板导出并不是直接将数据写入到模板文件中,而是将模板文件读取到内存中,然后在内存中进行操作并写入到新的 Excel 文件中。因此,我们在填充数据时需要注意模板文件中的样式、格式等信息,以确保导出的文件和模板文件的样式一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值