node.js에서 단순 데이터베이스로 Excel 파일 사용

node.js에서 단순 데이터베이스로 Excel 파일 사용



MySQL을 사용할수록 과장하지 않고 손쉽게 데이터베이스를 사용하고 싶은 경우, 간이 데이터베이스로서 Excel을 도입하는 것도 좋은 손이라고 생각합니다.
Excel이라면 일부러 SQL을 쓰지 않고 익숙한 UI로 데이터 갱신을 할 수 있으므로 간편한 이점이 있네요.
그래서 node.js에서 Excel 파일을 읽고 쓸 수있는 라이브러리를 찾았습니다.
가능하면 헤더 등은 색칠해 두고 싶기 때문에 서식 정보는 유지한 채로 저장하고 싶은 전제입니다.

SheetJS



고기능입니다만 Pro판이 아니면 서식 정보가 보존되지 않기 때문에 이번은 패스.
공식 페이지

xlsx-populate



xlsx-populate를 사용하면 서식 정보를 유지하면서 Excel 파일을 읽고 쓸 수 있습니다.
Github

설치 방법


npm install xlsx-populate

사용법


const XlsxPopulate = require('xlsx-populate')

XlsxPopulate.fromFileAsync("./Input.xlsx")
    .then(book => {
        const sheet1 = book.sheet("Sheet1")
        sheet1.cell("A2").value(10)
        sheet1.cell("B2").value(20)
        sheet1.cell("C2").value(30)
        book.toFileAsync("./Output.xlsx")
    })

xlsx-populate-wrapper



xlsx-populate를 랩핑한 xlsx-populate-wrapper를 사용하면 더욱 사용하기 쉬워집니다. 이 방법이 가장 추천합니다.

Github

설치 방법


npm install xlsx-populate-wrapper

사용법



const xPopWrapper = require("xlsx-populate-wrapper")
const path = require("path")

const filePath = path.resolve('./sample_data.xlsx')
const workbook = new xPopWrapper(filePath)

workbook.init()
  .then(wb => {
    // シート名の一覧を取得
    console.log(wb.getSheetNames())
    // => ['Sheet1', 'Sheet2', 'Sheet3']

    // シート名を指定してヘッダ一覧の取得
    console.log(workbook.getHeadings('Sheet1'))
    // => ['Title1', 'Title2', 'Title3']

    // シート名を指定してJSONデータとして取得
    const jsonData = workbook.getData('Sheet1')
    console.log(jsonData)
    /*
      [
        {
          'Title1': '1',
          'Title2': '2',
          'Title3': '3',
        },
        {
          'Title1': '5',
          'Title2': '6',
          'Title3': '7',
        },
        {
          'Title1': '11',
          'Title2': '12',
          'Title3': '13',
        }
      ]
    */

    // データを書き換える
    jsonData[0].Title3 ='a'
    jsonData[1].Title3 ='b'
    jsonData[2].Title3 ='c'

    workbook.update('Sheet1', jsonData) // 更新

    return workbook.commit() // ファイルに書き込み
  })
  .catch(error => {
    throw error
  })

다시 쓰기 전에 Excel 파일





실행 로그





다시 쓰기 후 Excel





Excel 데이터를 JSON 데이터로 취급 할 수 있으므로 jQuery와 underscore를 조합하면 where 검색이나 좁히기를 할 수 있으므로 꽤 사용할 수있는 노하우라고 생각합니다 ☺

엔지니어에게 도움이 되는 정보를 Twitter에서도 발신하고 있으므로 좋으면 Twitter도 팔로우를 잘 부탁드립니다!
트위터 링크는 여기

좋은 웹페이지 즐겨찾기