node.js 导出Csv文件

注:.csv文件默认是以逗号分隔的,因此内容采用逗号连接。

导出所有符合条件的列表,通过写接口导出

    const iconv = require('iconv-lite')      //中文转码

    async function exportExcle(ctx, next) {
    const { date, type, green } = ctx.request.query
    const sql = green_info('tbl_curve_pv')
    let dataList, content=''
    let fileName= "pv"+new Date().valueOf()

    sql.where('date', date).where('type', type)
    if ( green !== '全部' ) {
        sql.where('green', green)
    }

    dataList = await sql.select('*').orderBy('pv', 'desc')

    ctx.response.set({

        'Content-Type': 'application/vnd.ms-execl',
        'Content-Disposition': 'attachment;filename='+ fileName +'.csv',
        'Pragma':'no-cache',
        'Expires': 0

    })

    content = '项目名称,绿皮ID,奥特曼ID,绿皮来源,访问次数\n'
    content+= dataList.map((item, index) => {

        return item.projectname +','+ item.greenid +','+ item.ultramanid +','+ item.green +','+ item.pv +'\n'

    }).join('')

    let buffer = new Buffer(content)

    //需要转换字符集
    let str=iconv.encode(buffer,'gbk')
    ctx.response.body = str

}

module.exports = {
    exportExcle
}



导出Csv文件默认是以逗号','分隔的,因为拼接字符串分隔应该使用逗号来分隔。

 

你可能感兴趣的:(node.js 导出Csv文件)