posts - 45,comments - 0,views - 4815

选择指定的数据easyexcel导出

前端vue

复制代码
<el-table
          :data="tableData"
          style="width: 100%"
          @selection-change="selectionChange"
      >
        <el-table-column
            type="selection"
            width="55"
            align="center"
        >
        </el-table-column>

        <el-table-column
            width="150px"
            label="序号"
            align="center"
            prop="id"
        />
        <el-table-column
            align="center"
            width="200px"
            label="订单编号"
            prop="orderId"
        />
        <el-table-column
            align="center"
            width="150px"
            label="订单类型"
            prop="orderType"
        />
        <el-table-column
            width="150px"
            align="center"
            label="订单动作"
            prop="orderActions"
        />
        <el-table-column
            width="150px"
            align="center"
            label="业务类型"
            prop="businessType"
        />
        <el-table-column
            width="150px"
            align="center"
            label="支付方式"
            prop="paymentMethods"
        />
        <el-table-column
            width="150px"
            align="center"
            label="配送方式"
            prop="shippingMethods"
        />
        <el-table-column
            width="150px"
            align="center"
            label="订单状态"
            prop="orderStatus"
        >
          <template v-slot="obj">
            <el-tag v-if="obj.row.orderStatus==='待出库'" type="warning">待出库</el-tag>
            <el-tag v-if="obj.row.orderStatus==='已出库'" type="info">已出库</el-tag>
            <el-tag v-if="obj.row.orderStatus==='已发货'" type="primary">已发货</el-tag>
            <el-tag v-if="obj.row.orderStatus==='已到货'" type="success">已到货</el-tag>
          </template>
        </el-table-column>

        <el-table-column
            align="center"
            label="操作"
        >
          <template v-slot="obj">
            <el-button type="primary" size="mini"
                       @click="showDetail(obj.row);detailDialogVisible = true">查看
            </el-button>
            <el-button type="success" icon="el-icon-s-promotion"
                       @click="outbound(obj.row)" size="mini">生成销售出库单
            </el-button>

          </template>
        </el-table-column>
      </el-table>
      <!--表单数据-->
复制代码

前端js传值

复制代码
 methods: {
        selectionChange(obj){
            console.log(obj)
            this.params = obj;

        },
       async exportExcel(){
            this.$axios({
                url:'http://localhost:8088/sales/sales-order/export2',
                method:'post',
                data:this.params,
                responseType: 'blob'
                // responseType: 'arraybuffer'
            }).then(res=>{
                //生成一个a链接
                const link = document.createElement("a");
                //将后端返回的数据封装为blob
                let blob = new Blob([res.data], { type: "multipary/form-data" });
                link.style.display = "none";
                //将返回的数据生成url赋值给a链接
                link.href = URL.createObjectURL(blob);
                link.setAttribute("download", decodeURI('订单详情.xlsx'));
                document.body.appendChild(link);
                link.click();
                // 下载完成移除元素
                document.body.removeChild(link);
                //下载后释放url对象
                window.URL.revokeObjectURL(link.href);
                console.log(res);
            })
        }
    }
复制代码

后端controller中

复制代码
  
@RestController
@RequestMapping("/sales/sales-order")
@Slf4j
public class SalesOrderController {
/**
     * 选择导出
     * @param params
     * @return
     * @throws IOException
     */
    @RequestMapping("export2")
    public void writeExcel2(HttpServletResponse response,@RequestBody List<SalesOrder> params) throws IOException {
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        //防止中文乱码
        String fileName = URLEncoder.encode("订单信息","UTF-8");
        response.setHeader("Content-Disposition","attachment;filename*=UTF-8''"+fileName+".xlsx");

        ServletOutputStream outputStream = response.getOutputStream();

        //工作簿对象
        ExcelWriterBuilder writeWorkBook = EasyExcel.write(outputStream,SalesOrder.class);
        //工作表对象
        ExcelWriterSheetBuilder sheet = writeWorkBook.sheet();
        //准备数据

        //
        sheet.doWrite(params);
    }
}
复制代码

 

posted on   小贤看世界  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示