nodejsはxlsxでexcel表をエクスポートします.

8699 ワード

nodejs+jsxlsxはファイルフローを使ってエクセルをダウンロードします.
  • 概要
  • 1.インストール依存
  • .xlsxライブラリの導入
  • .クエリに必要なデータ
  • .データをExcelテーブルの横軸に変換して示す
  • .テーブルを作成する
  • .データをシートに載せる
  • .最後にファイルフローに対応する設定
  • を採用する.
  • .ファイル名などを設定する
  • .中国語の頭がほしいです.
  • 概要
    本論文では、Node.jsの依存ライブラリでExcelファイルを処理し、主にjs-xlsxライブラリを利用してExcelファイルを処理します.
    1.設置依存
    npm install xlsx
    
    2.xlsxライブラリの導入
    const Excel = require ('xlsx')
    
    3.クエリに必要なデータをエクスポートする
    くり:
    const users = await this._User.findAll({
          attributes:['firstName', 'lastName', 'email']
        })
    
    4.データをExcel表の横軸に変えて展示する
    データの種類がJsonなら、以下のようになります.
    let ws = Excel.utils.json_to_sheet(users)//   users    
    
    データタイプが配列の場合、以下のようになります.
    let ws = Excel.utils.aoa_to_sheet(users)
    
    私はここが初めてです.✌️
    5.テーブルの作成
    let wb = Excel.utils.book_new()
    
    6.データをシートに載せる
     Excel.utils.book_append_sheet(wb, ws, 'users    ')//            
    
    7.最後にファイルフローの設定を行います.
    let buf = Excel.write(wb, {
          type: 'buffer',
          bookType: 'xlsx'
        }) 
    
    8.ファイル名などを設定する
    let filename = 'users.xlsx'
        ctx.set('Content-disposition', 'attachment; filename=' + filename);
        ctx.type = "xlsx"
        ctx.body = buf
        return buf
    
    9.やってみたら成功するはずです.
    9.中国語の表がほしいです.
     const fields = [ 'firstName', 'lastName', 'email', 'describe.introduce', 'describe.age']
       const titles = {
        firstName: ' ',
        lastName: ' ',
        email: '  ',
        'describe.introduce': '  ',
        'describe.age': '  '
      }
       const ws = Excel.utils.json_to_sheet(
        users, 
          { 
              header: fields
          }
      )
      const range = Excel.utils.decode_range(ws['!ref'])
      for(let c = range.s.c; c <= range.e.c; c++) {
        const header = Excel.utils.encode_col(c) + '1'
        ws[header].v = titles[ ws[header].v ]
      }