first commit
This commit is contained in:
commit
4a44253e16
|
@ -0,0 +1 @@
|
||||||
|
node_modules/
|
|
@ -0,0 +1,12 @@
|
||||||
|
# 处理工具
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 合并xlsx
|
||||||
|
|
||||||
|
1.把需要合并的文件放到excel文件夹里
|
||||||
|
2.运行start.bat文件
|
||||||
|
3.到result下拿到合并完成的excel
|
||||||
|
|
||||||
|
|
||||||
|
## xlsx转geojson
|
|
@ -0,0 +1,53 @@
|
||||||
|
/**
|
||||||
|
* @description excel批量合成工具
|
||||||
|
* @author cmyh100
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// 公共库
|
||||||
|
const xlsx = require('node-xlsx')
|
||||||
|
const fs = require('fs')
|
||||||
|
// excel文件夹路径(把要合并的文件放在excel文件夹内)
|
||||||
|
const _file = `${__dirname}/excel/`
|
||||||
|
const _output = `${__dirname}/result/`
|
||||||
|
// 合并数据的结果集
|
||||||
|
let dataList = [{
|
||||||
|
name: 'sheet1',
|
||||||
|
data: []
|
||||||
|
}]
|
||||||
|
|
||||||
|
init()
|
||||||
|
function init () {
|
||||||
|
fs.readdir(_file, function(err, files) {
|
||||||
|
if (err) {
|
||||||
|
throw err
|
||||||
|
}
|
||||||
|
// files是一个数组
|
||||||
|
// 每个元素是此目录下的文件或文件夹的名称
|
||||||
|
// console.log(`${files}`);
|
||||||
|
files.forEach((item, index) => {
|
||||||
|
try {
|
||||||
|
// console.log(`${_file}${item}`)
|
||||||
|
console.log(`开始合并:${item}`)
|
||||||
|
let excelData = xlsx.parse(`${_file}${item}`)
|
||||||
|
if (excelData) {
|
||||||
|
if (dataList[0].data.length > 0) {
|
||||||
|
excelData[0].data.splice(0, 1)
|
||||||
|
}
|
||||||
|
dataList[0].data = dataList[0].data.concat(excelData[0].data)
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
console.log('excel表格内部字段不一致,请检查后再合并。')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 写xlsx
|
||||||
|
var buffer = xlsx.build(dataList)
|
||||||
|
fs.writeFile(`${_output}resut.${new Date().getTime()}.xlsx`, buffer, function (err) {
|
||||||
|
if (err) {
|
||||||
|
throw err
|
||||||
|
}
|
||||||
|
console.log('\x1B[33m%s\x1b[0m', `完成合并:${_output}resut.${new Date().getTime()}.xlsx`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
const log4js = require('log4js');
|
||||||
|
const {program} = require('commander');
|
||||||
|
const xlsx = require('node-xlsx');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
|
||||||
|
const logger = log4js.getLogger("cgfx");
|
||||||
|
|
||||||
|
program
|
||||||
|
.version('1.0.0')
|
||||||
|
.description('An application for create geojson from xlsx.')
|
||||||
|
.option('-l, --log-level <string>', 'log level [all < trace < debug < info < warn < error < fatal < mark < off]', 'debug')
|
||||||
|
.option('-f, --from-file <string>', 'input xlsx file', 'grid/resut.xlsx')
|
||||||
|
.option('-t, --to-file <string>', 'output geojson file', 'grid/grid.geojson')
|
||||||
|
.option('-b, --bbox-fields <string>', 'bbox fields:minx,miny,maxx,maxy', 'grid_lon_min,grid_lat_min,grid_lon_max,grid_lat_max')
|
||||||
|
.option('-i, --info-fields <string>', 'info fields:info1,info2', 'grid_addr,grid_fk_target,grid_fk,grid_ph,grid_acti,grid_label1,grid_label2,grid_label3,grid_label4')
|
||||||
|
.option('-p, --prefix-field <string>', 'field prefix', 'app_app_cbam_lbs_grid_cust_label_d_f_v1.')
|
||||||
|
|
||||||
|
program.parse(process.argv)
|
||||||
|
|
||||||
|
const args = program.opts()
|
||||||
|
|
||||||
|
logger.level = args.logLevel;
|
||||||
|
logger.info(`args = ${JSON.stringify(args)}`)
|
||||||
|
|
||||||
|
function get_field_index(headers, args) {
|
||||||
|
const fm = {}
|
||||||
|
headers.forEach((v, i) => fm[v] = i)
|
||||||
|
|
||||||
|
const res = {}
|
||||||
|
|
||||||
|
const bboxFields = args.bboxFields.split(",")
|
||||||
|
res.bboxIndex = bboxFields.map((v, i) => fm[args.prefixField + bboxFields[i]])
|
||||||
|
|
||||||
|
const infoFields = args.infoFields.split(",")
|
||||||
|
res.infoFields = infoFields
|
||||||
|
res.infoIndex = infoFields.map((v, i) => fm[args.prefixField + infoFields[i]])
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
function write_to_geojson_file(sheet, index_info, writer) {
|
||||||
|
writer.write('{\n' +
|
||||||
|
'"type": "FeatureCollection",\n' +
|
||||||
|
'"name": "grid",\n' +
|
||||||
|
'"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },\n' +
|
||||||
|
'"features": [\n');
|
||||||
|
let count = 0;
|
||||||
|
let total = sheet.data.length;
|
||||||
|
for (let i = 1; i < total; i++) {
|
||||||
|
const row = sheet.data[i];
|
||||||
|
let bbox = index_info.bboxIndex.map((v) => {
|
||||||
|
return +row[v];
|
||||||
|
});
|
||||||
|
let props = {};
|
||||||
|
index_info.infoIndex.forEach((v, i) => {
|
||||||
|
props[index_info.infoFields[i]] = row[index_info.infoIndex[i]];
|
||||||
|
});
|
||||||
|
|
||||||
|
props["id"] = count;
|
||||||
|
let coors = [[bbox[0], bbox[1]], [bbox[2], bbox[1]], [bbox[2], bbox[3]], [bbox[0], bbox[3]], [bbox[0], bbox[1]]]
|
||||||
|
let feature = {"type": "Feature", "properties": props, "geometry": {"type": "Polygon", "coordinates": [coors]}}
|
||||||
|
|
||||||
|
writer.write((i == 1 ? '' : ',\n') + JSON.stringify(feature))
|
||||||
|
count++;
|
||||||
|
|
||||||
|
if (count % 1000 == 0) {
|
||||||
|
logger.info(`${i}/${total} ${new Number(i * 100 / total).toFixed()}...`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writer.write('\n]\n' +
|
||||||
|
'}\n');
|
||||||
|
|
||||||
|
logger.info(`${total}/${total} 100%...`)
|
||||||
|
}
|
||||||
|
|
||||||
|
function geojson_from_xlsx(args) {
|
||||||
|
logger.info('load xlsx file, file = ' + args.fromFile)
|
||||||
|
const sheets = xlsx.parse(args.fromFile)
|
||||||
|
logger.info('xlsx file loaded')
|
||||||
|
|
||||||
|
const sheet = sheets[0]
|
||||||
|
const index_info = get_field_index(sheet.data[0], args)
|
||||||
|
|
||||||
|
logger.info('start write to geojson, file = ' + args.toFile)
|
||||||
|
let writer = fs.createWriteStream(args.toFile)
|
||||||
|
write_to_geojson_file(sheet, index_info, writer)
|
||||||
|
writer.close()
|
||||||
|
|
||||||
|
logger.info('end write to geojson')
|
||||||
|
}
|
||||||
|
|
||||||
|
const start_time = new Date().getTime();
|
||||||
|
|
||||||
|
logger.info('start create geojson from xlsx ...')
|
||||||
|
geojson_from_xlsx(args);
|
||||||
|
logger.info('end create geojson from xlsx, spent time = ' + (new Date().getTime() - start_time)/1000 + "s");
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,228 @@
|
||||||
|
{
|
||||||
|
"name": "excelmergetool",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"requires": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": {
|
||||||
|
"version": "7.16.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz",
|
||||||
|
"integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==",
|
||||||
|
"requires": {
|
||||||
|
"regenerator-runtime": "^0.13.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"adler-32": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
|
||||||
|
"requires": {
|
||||||
|
"exit-on-epipe": "~1.0.1",
|
||||||
|
"printj": "~1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"buffer-from": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
|
||||||
|
},
|
||||||
|
"cfb": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-wT2ScPAFGSVy7CY+aauMezZBnNrfnaLSrxHUHdea+Td/86vrk6ZquggV+ssBR88zNs0OnBkL2+lf9q0K+zVGzQ==",
|
||||||
|
"requires": {
|
||||||
|
"adler-32": "~1.3.0",
|
||||||
|
"crc-32": "~1.2.0",
|
||||||
|
"printj": "~1.3.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"adler-32": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-f5nltvjl+PRUh6YNfUstRaXwJxtfnKEWhAWWlmKvh+Y3J2+98a0KKVYDEhz6NdKGqswLhjNGznxfSsZGOvOd9g==",
|
||||||
|
"requires": {
|
||||||
|
"printj": "~1.2.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"printj": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/printj/-/printj-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-sanczS6xOJOg7IKDvi4sGOUOe7c1tsEzjwlLFH/zgwx/uyImVM9/rgBkc8AfiQa/Vg54nRd8mkm9yI7WV/O+WA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"printj": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/printj/-/printj-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-017o8YIaz8gLhaNxRB9eBv2mWXI2CtzhPJALnQTP+OPpuUfP0RMWqr/mHCzqVeu1AQxfzSfAtAq66vKB8y7Lzg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"codepage": {
|
||||||
|
"version": "1.15.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz",
|
||||||
|
"integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
|
||||||
|
},
|
||||||
|
"commander": {
|
||||||
|
"version": "8.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
||||||
|
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
|
||||||
|
},
|
||||||
|
"crc-32": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
|
||||||
|
"requires": {
|
||||||
|
"exit-on-epipe": "~1.0.1",
|
||||||
|
"printj": "~1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"date-format": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w=="
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
|
||||||
|
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exit-on-epipe": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
|
||||||
|
},
|
||||||
|
"flatted": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
|
||||||
|
},
|
||||||
|
"frac": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
|
||||||
|
},
|
||||||
|
"fs-extra": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||||
|
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "^4.2.0",
|
||||||
|
"jsonfile": "^4.0.0",
|
||||||
|
"universalify": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"graceful-fs": {
|
||||||
|
"version": "4.2.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||||
|
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
|
||||||
|
},
|
||||||
|
"jsonfile": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "^4.1.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"log4js": {
|
||||||
|
"version": "6.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz",
|
||||||
|
"integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==",
|
||||||
|
"requires": {
|
||||||
|
"date-format": "^3.0.0",
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"flatted": "^2.0.1",
|
||||||
|
"rfdc": "^1.1.4",
|
||||||
|
"streamroller": "^2.2.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
},
|
||||||
|
"node-xlsx": {
|
||||||
|
"version": "0.14.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-xlsx/-/node-xlsx-0.14.2.tgz",
|
||||||
|
"integrity": "sha512-xbFHYP76OFm3ByK8opP/mzmkjtSY3U9g3U86erOBjQRugCMLdlYSFv2xwLq5vcENsydwMM41MwZ7f+ZbSYBWjg==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.14.6",
|
||||||
|
"buffer-from": "^1.1.1",
|
||||||
|
"xlsx": "^0.17.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"printj": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
|
||||||
|
},
|
||||||
|
"regenerator-runtime": {
|
||||||
|
"version": "0.13.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||||
|
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||||
|
},
|
||||||
|
"rfdc": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
|
||||||
|
},
|
||||||
|
"ssf": {
|
||||||
|
"version": "0.11.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz",
|
||||||
|
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
|
||||||
|
"requires": {
|
||||||
|
"frac": "~1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"streamroller": {
|
||||||
|
"version": "2.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz",
|
||||||
|
"integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==",
|
||||||
|
"requires": {
|
||||||
|
"date-format": "^2.1.0",
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"fs-extra": "^8.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"date-format": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"universalify": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
|
||||||
|
},
|
||||||
|
"wmf": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
|
||||||
|
},
|
||||||
|
"word": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz",
|
||||||
|
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
|
||||||
|
},
|
||||||
|
"xlsx": {
|
||||||
|
"version": "0.17.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.17.4.tgz",
|
||||||
|
"integrity": "sha512-9aKt8g9ZLP0CUdBX8L5xnoMDFwSiLI997eQnDThCaqQMYB9AEBIRzblSSNN/ICMGLYIHUO3VKaItcedZJ3ijIg==",
|
||||||
|
"requires": {
|
||||||
|
"adler-32": "~1.2.0",
|
||||||
|
"cfb": "^1.1.4",
|
||||||
|
"codepage": "~1.15.0",
|
||||||
|
"crc-32": "~1.2.0",
|
||||||
|
"ssf": "~0.11.2",
|
||||||
|
"wmf": "~1.0.1",
|
||||||
|
"word": "~0.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "excelmergetool",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "excel批量合成工具",
|
||||||
|
"scripts": {
|
||||||
|
"combine": "node combine_xlsx.js",
|
||||||
|
"xlsx2geojosn": "node create_geojson_from_xlsx.js"
|
||||||
|
},
|
||||||
|
"author": "cmyh100",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"commander": "^8.3.0",
|
||||||
|
"log4js": "^6.3.0",
|
||||||
|
"node-xlsx": "^0.14.2"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Reference in New Issue