複習完學習到的基本的東西,進入真正的學習日常。
來玩玩資料格式轉換吧!
開始用到一些 node.js的東西,雖然還不是很理解內部原理。
我需要把一筆從 excel 複製的資料,轉成我要的格式使用。
思考:我需要做什麼
- 讀取與寫入檔案
- 讀取後資料格式處理
環境建制提醒:
- node.js 安裝
- npm init 初始化一個專案
使用的原始資料 excel:
資料一 | "" | 資料二 | "" | 資料三 |
---|---|---|---|---|
"" | "" | 資料二 | "" | 資料三 |
"" | "" | 資料二 | "" | 資料三 |
"" | "" | 資料二 | "" | 資料三 |
資料一 | "" | 資料二 | "" | 資料三 |
"" | "" | 資料二 | "" | 資料三 |
"" | "" | 資料二 | "" | 資料三 |
資料一 | "" | 資料二 | "" | 資料三 |
- vi example.txt 將 excel 資料複製貼入
說明:我們用 vi 編輯器建立 example.txt ,把直接複製格子內的資料便會變成圖示內的樣子。儲存。
- vi example.js && require('fs') 引入檔案系統模組,以便讀取與寫入系統檔案,再來就剩中間的格式處理
說明:用到的 method 解釋
var fs = require('fs')
var reformat = []
var tag = -1
var output = fs.readFileSync('example.txt', 'utf-8')
.trim()
.split('\n')
.map((item) => {item.split('\t')})
.map((item) => {
var title, data, flag;
title = item[0]
data = item[2]
flag = item[4]
if (title !== "") {
reformat.push({ 'title': title, 'content': [{ 'name': data, 'flag': flag }]})
tag += 1;
}
else {
reformat[tag].content.push({ 'name': data, 'flag': flag })
}
})
reformat = JSON.stringify(reformat)
fs.writeFileSync('example.json', reformat, 'utf-8')
- 下指令 node example.js
說明:執行以上程式碼之後,得到我們新的資料 example.json ,結果如畫面。
完成!