Compare commits
No commits in common. 'a4628c73b78f4857f423b7816d8588edfb6fa904' and '6699ede0fa59063e8d7f48a6b373cc6875fd83ef' have entirely different histories.
a4628c73b7
...
6699ede0fa
@ -1,59 +0,0 @@ |
|||||||
const xlsx = require('xlsx') |
|
||||||
const fs = require('fs') |
|
||||||
const dayjs = require('dayjs') |
|
||||||
|
|
||||||
const dayFromExcel=(value) => |
|
||||||
dayjs('1900-01-01') |
|
||||||
.add(value + 2 * 365, 'day') |
|
||||||
.format('YYYY-MM-DD') |
|
||||||
|
|
||||||
|
|
||||||
const handle = { |
|
||||||
topSpeed: (value) => Number(Number(value).toFixed(1)), |
|
||||||
acceleration: (value) => Number(Number(value).toFixed(2)), |
|
||||||
handling: (value) => Number(Number(value).toFixed(2)), |
|
||||||
nitro: (value) => Number(Number(value).toFixed(2)), |
|
||||||
nitroDuration: (value) => Number(Number(value).toFixed(2)), |
|
||||||
car_id: (value) => '' + value, |
|
||||||
注册日期: dayFromExcel, |
|
||||||
合同开始日期: dayFromExcel, |
|
||||||
合同到期日期: dayFromExcel, |
|
||||||
} |
|
||||||
|
|
||||||
const copy = (obj) => JSON.parse(JSON.stringify(obj)) |
|
||||||
|
|
||||||
const useHandle = (obj, handle) => { |
|
||||||
let res = copy(obj) |
|
||||||
Object.keys(handle).forEach((key) => { |
|
||||||
if (res[key]) { |
|
||||||
res[key] = handle[key](res[key]) |
|
||||||
} |
|
||||||
}) |
|
||||||
return res |
|
||||||
} |
|
||||||
|
|
||||||
const exportJsonLines = (xlsxFilePath, sheetName) => { |
|
||||||
const table = xlsx.readFile(xlsxFilePath) |
|
||||||
const dataPath = `dist\\${xlsxFilePath}.${sheetName}.line.json` |
|
||||||
const dataJson = xlsx.utils.sheet_to_json(table.Sheets[sheetName]) |
|
||||||
// console.log(table.Sheets[sheetName]["!merges"])
|
|
||||||
const dataLines = dataJson.map((obj) => useHandle(obj, handle)) |
|
||||||
const dataBuffer = Buffer.from(JSON.stringify(dataLines)) |
|
||||||
|
|
||||||
fs.writeFileSync(dataPath, dataBuffer) |
|
||||||
} |
|
||||||
|
|
||||||
//运行命令 node exportJson文件名 表名,即可导出文件
|
|
||||||
|
|
||||||
// node ./exportJson.js ./狂野飙车9生涯数据-地图.xlsx forJson
|
|
||||||
|
|
||||||
const [, , xlsxFilePath, sheetName] = process.argv |
|
||||||
|
|
||||||
try { |
|
||||||
if (xlsxFilePath && sheetName) { |
|
||||||
exportJsonLines(xlsxFilePath, sheetName) |
|
||||||
console.log('执行成功') |
|
||||||
} |
|
||||||
} catch (e) { |
|
||||||
console.log(e) |
|
||||||
} |
|
||||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue