Koa实现下载excel

Koa实现下载excel

#安装 node-xlsx
npm install node-xlsx --save

实现思路:将生成的excel文件流返回到前端

routes

router.get('/mp/push_excle', async (ctx, next) => {
    await Push.pushGroupExcel(ctx).then(function(res) {
        // let path = res
        ctx.set('Content-Type', 'application/vnd.openxmlformats');
        ctx.set("Content-Disposition", "attachment; filename=" + "terminal.xlsx");
        // let data = fs.readFileSync(path)
        ctx.body = res;
    }).catch(err => {
        ctx.body = {
            code: -1,
            msg: err
        }
    })
})

push.js

const pushGroupExcel = async function(ctx){
  return new Promise(async function (resolve,reject) {
      let data =[{
          name: 'sheet1',
          data: [
              [
                  'ID',
                  'Name',
                  'Score'
              ],
              [
                  '1',
                  'Michael',
                  '99'

              ],
              [
                  '2',
                  'Jordan',
                  '98'
              ]
          ]
      }]
      await excelUtils.writeGroupExcel(data).then(function (res) {
          resolve(res)
      }).catch(function (err) {
          console.log(err)
          reject(err)
      })
  })
}

module.exports = {
  pushGroupExcel:pushGroupExcel
};

excel.js

var xlsx = require('node-xlsx');
var fs = require('fs')
const util = require('../util/utils.js')
var path=require('path')

const writeGroup = async function(data) {
    return new Promise(function (resolve,reject) {
        if(data.length ==0){
            reject('excel传入数据为空')
        }
        var buffer = xlsx.build(data)
        resolve(buffer)
    })
}

module.exports = {
    writeGroupExcel: writeGroup
}


参考

koa框架数据导出为excel格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,需要安装koakoa-router模块。然后,可以按照以下步骤实现增删改功能: 1. 创建koa应用和路由: ```javascript const Koa = require('koa'); const Router = require('koa-router'); const app = new Koa(); const router = new Router(); ``` 2. 实现添加数据的路由: ```javascript router.post('/data', async (ctx) => { const data = ctx.request.body; // 获取请求体中的数据 // 将数据添加到数据库中 // 返回添加成功的信息 ctx.body = { success: true, message: '添加数据成功' }; }); ``` 3. 实现查询数据的路由: ```javascript router.get('/data/:id', async (ctx) => { const id = ctx.params.id; // 获取请求参数中的id // 根据id查询数据库中的数据 // 返回查询结果 ctx.body = { success: true, data: {} }; }); ``` 4. 实现修改数据的路由: ```javascript router.put('/data/:id', async (ctx) => { const id = ctx.params.id; // 获取请求参数中的id const newData = ctx.request.body; // 获取请求体中的新数据 // 根据id更新数据库中的数据 // 返回更新成功的信息 ctx.body = { success: true, message: '更新数据成功' }; }); ``` 5. 实现删除数据的路由: ```javascript router.delete('/data/:id', async (ctx) => { const id = ctx.params.id; // 获取请求参数中的id // 根据id删除数据库中的数据 // 返回删除成功的信息 ctx.body = { success: true, message: '删除数据成功' }; }); ``` 6. 将路由注册到koa应用中: ```javascript app.use(router.routes()); app.use(router.allowedMethods()); ``` 以上就是使用koa实现增删改功能的基本步骤,具体的实现细节需要根据具体的业务需求来进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古月_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值