Node.js에서 Excel ⇒ JSON, JSON ⇒ Excel 변환 할 샘플
할 일
1. Excel 파일을 JSON으로 가져옵니다.
2. JSON 편집 후 새 Excel 파일로 출력합니다.
환경
Node.js
· 설치
htps : // 그래서 js. 오 rg / 그럼 /
추천판(집필 시점:12.18.4)
· package.json 작성
작업용 디렉토리에서 다음을 실행한다.npm init -y
(-y:모두 Yes로 디폴트 설정)
xlsx(npm package)
· 설치npm install xlsx
・공식
htps //w w. 음 pmjs. 코 m/파c카게/xlsx
구현
전제
・책의 대출 이력으로부터, 각 유저의 미반환 이력만을 추출하는 상황을 상정.
· 이력 데이터는 사용자 ID와 책 코드로 관리되므로 추출 데이터는 이름과 책 이름을 추가합니다.
· 데이터는 다음과 같다. (BookLendingHistory.xlsx)
<대출 이력>
<사용자 마스터>
<서적 마스터>
Excel 파일 불러오기
index.jslet XLSX = require('xlsx')
let workbook = XLSX.readFile('BookLendingHistory.xlsx', {cellDates:true})
// cellDates(日付セルの保持形式を指定)
// false:数値(シリアル値)[default]
// true :日付フォーマット
데이터 획득(JSON)
각 시트마다 JSON으로 가져옵니다.
index.jslet history, users, books
workbook.SheetNames.forEach(sheet => {
if("history" == sheet) history = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("users" == sheet) users = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("books" == sheet) books = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
})
history(대출 이력)
※데이터가 없는 셀의 JSON 프로퍼티은 취득되지 않습니다. (반납 일시)
users(사용자 마스터)
books(책 마스터)
추출
반환 일시가 없는 이력을 추출합니다.
index.jslet notReturned = history.filter(function(item) {
return !("返却日時" in item)
})
추출 결과
가공
사용자 이름과 책 이름을 더한 JSON을 만듭니다.
index.jslet notReturnedReport = []
notReturned.forEach(item => {
item.ユーザ名 = getUserName(item)
item.書籍名 = getBookName(item)
notReturnedReport.push(item)
})
/**
* JSON内のユーザIDに一致するユーザ名を返す
* @param {*} item
*/
function getUserName(item){
let userName = ""
users.some(function(user) {
if(user.ユーザID == item.ユーザID) userName = user.ユーザ名
})
return userName
}
/**
* JSON内の貸出書籍コードに一致する書籍名を返す
* @param {*} item
*/
function getBookName(item){
let bookName = ""
books.some(function(book) {
if(book.書籍コード == item.貸出書籍コード) bookName = book.書籍名
})
return bookName
}
가공 결과
출력(Excel)
새 Excel 파일로 내보냅니다.
index.jslet exportBook = XLSX.utils.book_new()
let sexportSheet = XLSX.utils.json_to_sheet(notReturnedReport)
XLSX.utils.book_append_sheet(exportBook, sexportSheet, "sheetName")
XLSX.writeFile(exportBook, "NotReturnedReport.xlsx")
출력된 Excel 파일
Github
Sample of Excel to JSON or JSON to Excel
Reference
이 문제에 관하여(Node.js에서 Excel ⇒ JSON, JSON ⇒ Excel 변환 할 샘플), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakumiKondo/items/ca522bff3307034bbcd6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Node.js
· 설치
htps : // 그래서 js. 오 rg / 그럼 /
추천판(집필 시점:12.18.4)
· package.json 작성
작업용 디렉토리에서 다음을 실행한다.
npm init -y
(-y:모두 Yes로 디폴트 설정)xlsx(npm package)
· 설치
npm install xlsx
・공식
htps //w w. 음 pmjs. 코 m/파c카게/xlsx
구현
전제
・책의 대출 이력으로부터, 각 유저의 미반환 이력만을 추출하는 상황을 상정.
· 이력 데이터는 사용자 ID와 책 코드로 관리되므로 추출 데이터는 이름과 책 이름을 추가합니다.
· 데이터는 다음과 같다. (BookLendingHistory.xlsx)
<대출 이력>
<사용자 마스터>
<서적 마스터>
Excel 파일 불러오기
index.jslet XLSX = require('xlsx')
let workbook = XLSX.readFile('BookLendingHistory.xlsx', {cellDates:true})
// cellDates(日付セルの保持形式を指定)
// false:数値(シリアル値)[default]
// true :日付フォーマット
데이터 획득(JSON)
각 시트마다 JSON으로 가져옵니다.
index.jslet history, users, books
workbook.SheetNames.forEach(sheet => {
if("history" == sheet) history = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("users" == sheet) users = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("books" == sheet) books = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
})
history(대출 이력)
※데이터가 없는 셀의 JSON 프로퍼티은 취득되지 않습니다. (반납 일시)
users(사용자 마스터)
books(책 마스터)
추출
반환 일시가 없는 이력을 추출합니다.
index.jslet notReturned = history.filter(function(item) {
return !("返却日時" in item)
})
추출 결과
가공
사용자 이름과 책 이름을 더한 JSON을 만듭니다.
index.jslet notReturnedReport = []
notReturned.forEach(item => {
item.ユーザ名 = getUserName(item)
item.書籍名 = getBookName(item)
notReturnedReport.push(item)
})
/**
* JSON内のユーザIDに一致するユーザ名を返す
* @param {*} item
*/
function getUserName(item){
let userName = ""
users.some(function(user) {
if(user.ユーザID == item.ユーザID) userName = user.ユーザ名
})
return userName
}
/**
* JSON内の貸出書籍コードに一致する書籍名を返す
* @param {*} item
*/
function getBookName(item){
let bookName = ""
books.some(function(book) {
if(book.書籍コード == item.貸出書籍コード) bookName = book.書籍名
})
return bookName
}
가공 결과
출력(Excel)
새 Excel 파일로 내보냅니다.
index.jslet exportBook = XLSX.utils.book_new()
let sexportSheet = XLSX.utils.json_to_sheet(notReturnedReport)
XLSX.utils.book_append_sheet(exportBook, sexportSheet, "sheetName")
XLSX.writeFile(exportBook, "NotReturnedReport.xlsx")
출력된 Excel 파일
Github
Sample of Excel to JSON or JSON to Excel
Reference
이 문제에 관하여(Node.js에서 Excel ⇒ JSON, JSON ⇒ Excel 변환 할 샘플), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakumiKondo/items/ca522bff3307034bbcd6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let XLSX = require('xlsx')
let workbook = XLSX.readFile('BookLendingHistory.xlsx', {cellDates:true})
// cellDates(日付セルの保持形式を指定)
// false:数値(シリアル値)[default]
// true :日付フォーマット
let history, users, books
workbook.SheetNames.forEach(sheet => {
if("history" == sheet) history = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("users" == sheet) users = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
if("books" == sheet) books = XLSX.utils.sheet_to_json(workbook.Sheets[sheet])
})
let notReturned = history.filter(function(item) {
return !("返却日時" in item)
})
let notReturnedReport = []
notReturned.forEach(item => {
item.ユーザ名 = getUserName(item)
item.書籍名 = getBookName(item)
notReturnedReport.push(item)
})
/**
* JSON内のユーザIDに一致するユーザ名を返す
* @param {*} item
*/
function getUserName(item){
let userName = ""
users.some(function(user) {
if(user.ユーザID == item.ユーザID) userName = user.ユーザ名
})
return userName
}
/**
* JSON内の貸出書籍コードに一致する書籍名を返す
* @param {*} item
*/
function getBookName(item){
let bookName = ""
books.some(function(book) {
if(book.書籍コード == item.貸出書籍コード) bookName = book.書籍名
})
return bookName
}
let exportBook = XLSX.utils.book_new()
let sexportSheet = XLSX.utils.json_to_sheet(notReturnedReport)
XLSX.utils.book_append_sheet(exportBook, sexportSheet, "sheetName")
XLSX.writeFile(exportBook, "NotReturnedReport.xlsx")
Sample of Excel to JSON or JSON to Excel
Reference
이 문제에 관하여(Node.js에서 Excel ⇒ JSON, JSON ⇒ Excel 변환 할 샘플), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TakumiKondo/items/ca522bff3307034bbcd6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)