xl1 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/bash1/index.js +1 -1
- package/dist/chunk-R3XJERYX.js +1 -0
- package/dist/{chunk-K6N7T6UC.js → chunk-UWATFLDM.js} +1 -1
- package/dist/jsd1/index.js +2 -2
- package/dist/jsh1/index.js +2 -2
- package/dist/jsss/index.js +2 -2
- package/dist/qidl/index.js +2 -0
- package/dist/ssdl/index.js +1 -1
- package/dist/template/eisvogel.tex +1101 -0
- package/dist/template/github-markdown.css +1033 -0
- package/dist/template/template.html +73 -0
- package/dist/xl1/index.js +1 -1
- package/package.json +2 -1
- /package/dist/{chunk-NEJSZOZX.js → chunk-UOOHSQIK.js} +0 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="pandoc" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
7
|
+
$for(author-meta)$
|
8
|
+
<meta name="author" content="$author-meta$" />
|
9
|
+
$endfor$
|
10
|
+
$if(date-meta)$
|
11
|
+
<meta name="dcterms.date" content="$date-meta$" />
|
12
|
+
$endif$
|
13
|
+
$if(keywords)$
|
14
|
+
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
15
|
+
$endif$
|
16
|
+
$if(description-meta)$
|
17
|
+
<meta name="description" content="$description-meta$" />
|
18
|
+
$endif$
|
19
|
+
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
20
|
+
<style>
|
21
|
+
$styles.html()$
|
22
|
+
</style>
|
23
|
+
$for(css)$
|
24
|
+
<link rel="stylesheet" href="$css$" />
|
25
|
+
$endfor$
|
26
|
+
$for(header-includes)$
|
27
|
+
$header-includes$
|
28
|
+
$endfor$
|
29
|
+
$if(math)$
|
30
|
+
$if(mathjax)$
|
31
|
+
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
32
|
+
$endif$
|
33
|
+
$math$
|
34
|
+
$endif$
|
35
|
+
</head>
|
36
|
+
<body class="markdown-body">
|
37
|
+
$for(include-before)$
|
38
|
+
$include-before$
|
39
|
+
$endfor$
|
40
|
+
$if(title)$
|
41
|
+
<header id="title-block-header">
|
42
|
+
<h1 class="title">$title$</h1>
|
43
|
+
$if(subtitle)$
|
44
|
+
<p class="subtitle">$subtitle$</p>
|
45
|
+
$endif$
|
46
|
+
$for(author)$
|
47
|
+
<p class="author">$author$</p>
|
48
|
+
$endfor$
|
49
|
+
$if(date)$
|
50
|
+
<p class="date">$date$</p>
|
51
|
+
$endif$
|
52
|
+
$if(abstract)$
|
53
|
+
<div class="abstract">
|
54
|
+
<div class="abstract-title">$abstract-title$</div>
|
55
|
+
$abstract$
|
56
|
+
</div>
|
57
|
+
$endif$
|
58
|
+
</header>
|
59
|
+
$endif$
|
60
|
+
$if(toc)$
|
61
|
+
<nav id="$idprefix$TOC" role="doc-toc">
|
62
|
+
$if(toc-title)$
|
63
|
+
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
64
|
+
$endif$
|
65
|
+
$table-of-contents$
|
66
|
+
</nav>
|
67
|
+
$endif$
|
68
|
+
$body$
|
69
|
+
$for(include-after)$
|
70
|
+
$include-after$
|
71
|
+
$endfor$
|
72
|
+
</body>
|
73
|
+
</html>
|
package/dist/xl1/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
#! /usr/bin/env node
|
2
|
-
"use strict";var _chunkNEJSZOZXjs = require('../chunk-NEJSZOZX.js');var E=_chunkNEJSZOZXjs.b.call(void 0, (Le,Q)=>{var T=_chunkNEJSZOZXjs.a.call(void 0, "fs"),W=_chunkNEJSZOZXjs.a.call(void 0, "xlsx"),xe=e=>{let{file:t,sheet:s,range:n,defval:o,noNullRow:r}=e;if(!T.existsSync(t)){console.log("file not found, ",t);return}if(![".xlsx",".xlsm"].find(u=>t.endsWith(u))){console.log("file type error, ",t);return}let l=W.readFile(t,{bookSheets:!1});if(!l)return null;let h=l.Sheets[s||l.SheetNames[0]],i={range:n,blankrows:!1,defval:o},d=W.utils.sheet_to_json(h,i);return r?d.filter(u=>Object.values(u).some(p=>!!p)):d},me=e=>{let{file:t,data:s,sheet:n}=e;if(!(t&&s&&Array.isArray(s)&&s.length>0))return;let o=Array.isArray(s[0])?W.utils.aoa_to_sheet(s):W.utils.json_to_sheet(s),r=T.existsSync(t)?W.readFile(t,{cellDates:!0}):W.utils.book_new();W.utils.book_append_sheet(r,o,n?n.substring(0,31):"Sheet1",!0),W.writeFile(r,t,{compression:!0})},N=e=>{let[t,s]=e.split(":"),n=t.replace(/\D/g,""),o=s.replace(/\D/g,""),r=t.replace(/\d/g,""),l=s.replace(/\d/g,"");return{startRow:parseInt(n),endRow:parseInt(o),startCol:r,endCol:l,firstRow:`${t}:${l}${n}`,firstCol:`${t}:${r}${o}`}},z=(e,t,s,n,o)=>{let r=[];for(let l=t;l<=s;l++){let c=[];for(let h=n;h<=o;h++){let d=e[""];c.push(d?d.v:null)}r.push(c)}return r},Z=(e,t)=>{let s=N(t);return z(e,s.startRow,s.endRow,s.startCol,s.endCol)},ye=(e,t)=>{let s=N(t);return Z(e,s.firstRow)[0]},be=(e,t)=>{let s=N(t);return Z(e,s.firstCol)[0]};Q.exports={readXlsx:xe,writeXlsx:me,getSheetData:Z,getSheetData2:z,parseRange:N,getFirstRow:ye,getFirstCol:be}});var G=_chunkNEJSZOZXjs.b.call(void 0, (Ye,le)=>{var L=_chunkNEJSZOZXjs.a.call(void 0, "path"),y=_chunkNEJSZOZXjs.a.call(void 0, "fs"),Y=_chunkNEJSZOZXjs.a.call(void 0, "glob"),U=_chunkNEJSZOZXjs.a.call(void 0, "js-yaml"),J=_chunkNEJSZOZXjs.a.call(void 0, "xlsx"),{readXlsx:V,writeXlsx:ee}=E(),Se=_chunkNEJSZOZXjs.a.call(void 0, "json2xml"),H=(e,t="",s={})=>{for(let n in e)if(e.hasOwnProperty(n)){let o=t?`${t}.${n}`:n;typeof e[n]=="object"&&e[n]!==null&&!Array.isArray(e[n])?H(e[n],o,s):s[n]=e[n]}return s},M=(e,t)=>{let s=L.dirname(t);y.existsSync(s)||y.mkdirSync(s,{recursive:!0}),y.writeFileSync(t,e,{encoding:"utf8"})},ke=e=>Y.sync(L.join(e)),Re=e=>Y.sync(L.join(e)).find(t=>t!==void 0),Fe=e=>{let t=Y.sync(e,{cwd:".",nocase:!0,nodir:!1});return t&&t.length>0},te=e=>y.existsSync(e)?JSON.parse(y.readFileSync(e,"utf8")):null,se=e=>y.existsSync(e)?U.load(y.readFileSync(e,"utf8")):null,ne=e=>{let{file:t,data:s}=e;if(Array.isArray(s)){let n=y.createWriteStream(t);n.write("[","utf-8"),s.map((o,r)=>n.write(JSON.stringify(o)+(r===s.length-1?"":","),"utf-8")),n.write("]","utf-8"),n.end(),n.on("finish",()=>{}),n.on("error",o=>{console.error(o)})}else y.writeFileSync(t,JSON.stringify(s,null,2),{encoding:"utf8"})},oe=e=>{let{file:t,data:s}=e,n=U.dump(s);y.writeFileSync(t,n,"utf8")},Ce=e=>{let{file:t}=e;if(!y.existsSync(t))return null;if(t.endsWith(".json"))return te(t);if(t.endsWith(".yaml")||t.endsWith(".yml"))return se(t);if(t.endsWith(".xlsx"))return V(e)},_e=e=>!![".json",".yaml",".xlsx",".yml"].find(s=>e.endsWith(s)),re=(e,t,s)=>{if(e.endsWith(".json"))return ne({file:e,data:t});if(e.endsWith(".yaml")||e.endsWith(".yml"))return oe({file:e,data:t});if(e.endsWith(".xlsx"))return ee({file:e,data:t.map(n=>H(n)),sheet:s&&s.sheet?s.sheet:"Sheet1"});if(e.endsWith(".csv")){let n=J.utils.json_to_sheet(t.map(r=>H(r))),o=J.utils.sheet_to_csv(n);return M(o,e)}if(e.endsWith(".tsv")){let n=J.utils.json_to_sheet(t.map(r=>H(r))),o=J.utils.sheet_to_csv(n,{FS:" "});return M(o,e)}if(e.endsWith(".xml")){let n=Se(t,{header:!0});return M(n,e)}console.error("not support type")},We=e=>{let{files:t,data:s,sheet:n}=e;t&&t.length>0&&t.map(o=>{re(o,s,{sheet:n})})};le.exports={save:M,find:ke,findOne:Re,isExsit:Fe,readJson:te,writeJson:ne,readYaml:se,writeYaml:oe,readXlsx:V,writeXlsx:ee,readFile:Ce,canReadFile:_e,writeFile:re,writeFiles:We}});var ce=_chunkNEJSZOZXjs.b.call(void 0, (Ge,ae)=>{var{readXlsx:Ae}=E(),{writeFile:Oe}=G(),ve={command:"read",describe:"load excel file",builder:{file:{alias:"f",describe:"load xlsx file ",demandOption:!0,type:"string"},sheet:{alias:"s",describe:"xlsx sheet name",demandOption:!1,type:"string"},range:{alias:"r",describe:"range of excel",default:"A1:Z2000",demandOption:!1,type:"string"},defval:{describe:"defval of cell",demandOption:!1,default:void 0,type:"string"},output:{alias:"o",describe:"output file: json, yaml, csv, tsv, xlsx",demandOption:!1,default:void 0,type:"string"}},handler(e){(async()=>{let t=Ae(e);e.output?Oe(e.output,t):console.log(JSON.stringify(t,null,2))})()}};ae.exports=ve});var ue=_chunkNEJSZOZXjs.b.call(void 0, (Ke,de)=>{var je=_chunkNEJSZOZXjs.a.call(void 0, "fs"),ie=_chunkNEJSZOZXjs.a.call(void 0, "exceljs"),qe=async e=>{let{file:t,sheet:s,range:n,defval:o,noNullRow:r}=e;if(!je.existsSync(t)){console.log("file not found, ",t);return}if(![".xlsx",".xlsm"].find(b=>t.endsWith(b))){console.log("file type error, ",t);return}let l=new ie.Workbook;await l.xlsx.readFile(t);let c=s?l.getWorksheet(s):l.worksheets[0];if(!c)return null;let{startRow:h,endRow:i,startCol:d,endCol:u}=D(n||"A1:Z2000"),p=[];return c.eachRow({includeEmpty:!1},(b,F)=>{if(F>=h&&F<=i){let S={};b.eachCell({includeEmpty:!0},(w,m)=>{if(m>=d&&m<=u){let f=c.getRow(h).getCell(m).value||`__EMPTY_${m-1}`;S[f]=w.value!==null?w.value:o}}),(!r||Object.values(S).some(w=>w!==null))&&p.push(S)}}),p},Ie=async e=>{let{file:t,data:s,sheet:n}=e;if(!(t&&s&&Array.isArray(s)&&s.length>0))return;let o=new ie.Workbook,r=o.addWorksheet(n?n.substring(0,31):"Sheet1");if(Array.isArray(s[0]))r.addRows(s);else{let l=Object.keys(s[0]);r.addRow(l),s.forEach(c=>{r.addRow(l.map(h=>c[h]))})}await o.xlsx.writeFile(t)},D=e=>{let[t,s]=e.split(":"),n=t.replace(/\D/g,""),o=s.replace(/\D/g,""),r=t.replace(/\d/g,""),l=s.replace(/\d/g,"");return{startRow:parseInt(n),endRow:parseInt(o),startCol:r,endCol:l,firstRow:`${t}:${l}${t.replace(/\D/g,"")}`,firstCol:`${t}:${r}${s.replace(/\D/g,"")}`}},$e=async(e,t)=>{let{startRow:s,endRow:n,startCol:o,endCol:r}=D(t),l=[];for(let c=s;c<=n;c++){let h=[];for(let i=o;i<=r;i++){let d=e.getCell(c,i);h.push(d.value)}l.push(h)}return l},De=async(e,t)=>{let{startRow:s,startCol:n,endCol:o}=D(t),r=[];for(let l=n;l<=o;l++){let c=e.getCell(s,l);r.push(c.value)}return r},Xe=async(e,t)=>{let{startRow:s,endRow:n,startCol:o}=D(t),r=[];for(let l=s;l<=n;l++){let c=e.getCell(l,o);r.push(c.value)}return r};de.exports={readXlsx:qe,writeXlsx:Ie,getSheetData:$e,parseRange:D,getFirstRow:De,getFirstCol:Xe}});var pe=_chunkNEJSZOZXjs.b.call(void 0, (Be,he)=>{var fe=_chunkNEJSZOZXjs.a.call(void 0, "fs"),Ne=async e=>{let{readXlsx:t,parseRange:s}=E(),n=_chunkNEJSZOZXjs.a.call(void 0, "xlsx"),o=(...a)=>{e.debug&&console.log(...a)},r=a=>{let[x,C,j]=a.split("|");return{file:x,sheet:C,range:j||"A1:Z2000",defval:null,noNullRow:!0,debug:e.debug}},l=a=>{let x=Object.values(a);return x&&x.length>0?x[0]:""},[c,...h]=e.files,i=r(c),d=n.readFile(i.file,{bookSheets:!1}),u=d.Sheets[i.sheet||d.SheetNames[0]],p=s(i.range),b=n.utils.sheet_to_json(u,{header:1,range:p.firstRow,blankrows:!0,defval:null})[0],F=n.utils.sheet_to_json(u,{header:1,range:p.firstCol,blankrows:!0,defval:null}).map(a=>a[0]);o(s(i.range)),o("Header",b),o("RowIds",F);let S=h.map(r);S.forEach((a,x)=>{let C=t(a),j=C.map(l);console.log(`================${a.sheet}=================`),j.forEach((k,q)=>{let R=F.findIndex(_=>k&&k===_);if(o(a.sheet,k,R>-1?"OK":"NG",`SheetProcess:${x+1}/${S.length}`),R>-1){let _=C[q],X=Object.keys(_).slice(1);X.forEach((A,P)=>{let I=b.findIndex(B=>B&&A===B),O=R,$=I,K=n.utils.encode_cell({r:O,c:$});u[K]={t:"s",v:_[A]},e.debug&&console.log(a.sheet,k,`RowProcess:${(P+1)/X.length*100}%`,[K,O,$,_[A]])})}})}),console.log("Merge completed successfully.");let w=e.output,m=fe.existsSync(w)?n.readFile(w,{cellDates:!0}):n.utils.book_new(),f=(e.sheet||"MergedSheet").substring(0,31);n.utils.book_append_sheet(m,u,f,!0),n.writeFile(m,w,{compression:!0})},Ee=async e=>{let{readXlsx:t,parseRange:s}=ue(),n=_chunkNEJSZOZXjs.a.call(void 0, "exceljs"),o=(...f)=>{e.debug&&console.log(...f)},r=f=>{let[a,x,C]=f.split("|");return{file:a,sheet:x,range:C||"A1:Z2000",defval:null,noNullRow:!0,debug:e.debug}},l=f=>{let a=Object.values(f);return a&&a.length>0?a[0]:""},[c,...h]=e.files,i=r(c),d=new n.Workbook;await d.xlsx.readFile(i.file);let u=d.getWorksheet(i.sheet||d.worksheets[0].name),p=s(i.range),b=u.getRow(p.startRow).values.slice(p.startCol,p.endCol+1),F=u.getColumn(p.startCol).values.slice(p.startRow,p.endRow+1);o(s(i.range)),o("Header",b),o("RowIds",F);let S=h.map(r);for(let[f,a]of S.entries()){let x=await t(a),C=x.map(l);console.log(`================${a.sheet}=================`);for(let[j,k]of C.entries()){let q=F.findIndex(R=>k&&k===R);if(o(a.sheet,k,q>-1?"OK":"NG",`SheetProcess:${f+1}/${S.length}`),q>-1){let R=x[j],_=Object.keys(R).slice(1);for(let[X,A]of _.entries()){let P=b.findIndex($=>$&&A===$),I=q+p.startRow,O=P+p.startCol;u.getCell(I,O).value=R[A],e.debug&&console.log(a.sheet,k,`RowProcess:${(X+1)/_.length*100}%`,[u.getCell(I,O).address,I,O,R[A]])}}}}console.log("Merge completed successfully.");let w=e.output,m=(e.sheet||"MergedSheet").substring(0,31);if(fe.existsSync(w)){let f=new n.Workbook;await f.xlsx.readFile(w);let a=f.getWorksheet(m);a&&f.removeWorksheet(a.id),f.addWorksheet(m,u),await f.xlsx.writeFile(w)}else u.name=m,await d.xlsx.writeFile(w)},Je={command:"merge <files..>",describe:"merge multiple excel sheets into the first sheet. (format: file|sheet|range, file|Sheet1|A1:Z2000)",builder:{output:{alias:"o",describe:"output file name",default:"MergedBook.xlsx",type:"string"},sheet:{alias:"s",describe:"xlsx sheet name",demandOption:!1,type:"string"},engine:{alias:"e",describe:"excel engine, sheetjs|exceljs",default:"sheetjs",demandOption:!1,type:"string"},debug:{alias:"d",describe:"print debug log",demandOption:!1,type:"boolean"}},handler(e){e.engine==="exceljs"?Ee(e):Ne(e)}};he.exports=Je});var we=_chunkNEJSZOZXjs.b.call(void 0, (Te,ge)=>{var{writeFiles:He}=G(),{getStdin:Me}=_chunkNEJSZOZXjs.a.call(void 0, "ts-stdin"),Pe={command:"json2",describe:"convert json to yaml, csv, tsv, xlsx",builder:{data:{alias:"d",describe:"json data",demandOption:!1,default:void 0,type:"string"},output:{alias:"o",describe:"output the request data, type: yaml, csv, tsv, xlsx",demandOption:!0,type:"array"}},handler(e){(async()=>{let t=e.data?JSON.parse(e.data):JSON.parse(await Me());e.output&&He({files:e.output,data:t})})()}};ge.exports=Pe});var Ze=()=>{let e=_chunkNEJSZOZXjs.a.call(void 0, "yargs").scriptName("xl1");e.command(ce()),e.command(pe()),e.command(we());let t=e.parse();(!t._||t._.length===0)&&e.showHelp()};Ze();
|
2
|
+
"use strict";var _chunkUOOHSQIKjs = require('../chunk-UOOHSQIK.js');var E=_chunkUOOHSQIKjs.b.call(void 0, (Le,Q)=>{var T=_chunkUOOHSQIKjs.a.call(void 0, "fs"),W=_chunkUOOHSQIKjs.a.call(void 0, "xlsx"),xe=e=>{let{file:t,sheet:s,range:n,defval:o,noNullRow:r}=e;if(!T.existsSync(t)){console.log("file not found, ",t);return}if(![".xlsx",".xlsm"].find(u=>t.endsWith(u))){console.log("file type error, ",t);return}let l=W.readFile(t,{bookSheets:!1});if(!l)return null;let h=l.Sheets[s||l.SheetNames[0]],i={range:n,blankrows:!1,defval:o},d=W.utils.sheet_to_json(h,i);return r?d.filter(u=>Object.values(u).some(p=>!!p)):d},me=e=>{let{file:t,data:s,sheet:n}=e;if(!(t&&s&&Array.isArray(s)&&s.length>0))return;let o=Array.isArray(s[0])?W.utils.aoa_to_sheet(s):W.utils.json_to_sheet(s),r=T.existsSync(t)?W.readFile(t,{cellDates:!0}):W.utils.book_new();W.utils.book_append_sheet(r,o,n?n.substring(0,31):"Sheet1",!0),W.writeFile(r,t,{compression:!0})},N=e=>{let[t,s]=e.split(":"),n=t.replace(/\D/g,""),o=s.replace(/\D/g,""),r=t.replace(/\d/g,""),l=s.replace(/\d/g,"");return{startRow:parseInt(n),endRow:parseInt(o),startCol:r,endCol:l,firstRow:`${t}:${l}${n}`,firstCol:`${t}:${r}${o}`}},z=(e,t,s,n,o)=>{let r=[];for(let l=t;l<=s;l++){let c=[];for(let h=n;h<=o;h++){let d=e[""];c.push(d?d.v:null)}r.push(c)}return r},Z=(e,t)=>{let s=N(t);return z(e,s.startRow,s.endRow,s.startCol,s.endCol)},ye=(e,t)=>{let s=N(t);return Z(e,s.firstRow)[0]},be=(e,t)=>{let s=N(t);return Z(e,s.firstCol)[0]};Q.exports={readXlsx:xe,writeXlsx:me,getSheetData:Z,getSheetData2:z,parseRange:N,getFirstRow:ye,getFirstCol:be}});var G=_chunkUOOHSQIKjs.b.call(void 0, (Ye,le)=>{var L=_chunkUOOHSQIKjs.a.call(void 0, "path"),y=_chunkUOOHSQIKjs.a.call(void 0, "fs"),Y=_chunkUOOHSQIKjs.a.call(void 0, "glob"),U=_chunkUOOHSQIKjs.a.call(void 0, "js-yaml"),J=_chunkUOOHSQIKjs.a.call(void 0, "xlsx"),{readXlsx:V,writeXlsx:ee}=E(),Se=_chunkUOOHSQIKjs.a.call(void 0, "json2xml"),H=(e,t="",s={})=>{for(let n in e)if(e.hasOwnProperty(n)){let o=t?`${t}.${n}`:n;typeof e[n]=="object"&&e[n]!==null&&!Array.isArray(e[n])?H(e[n],o,s):s[n]=e[n]}return s},M=(e,t)=>{let s=L.dirname(t);y.existsSync(s)||y.mkdirSync(s,{recursive:!0}),y.writeFileSync(t,e,{encoding:"utf8"})},ke=e=>Y.sync(L.join(e)),Re=e=>Y.sync(L.join(e)).find(t=>t!==void 0),Fe=e=>{let t=Y.sync(e,{cwd:".",nocase:!0,nodir:!1});return t&&t.length>0},te=e=>y.existsSync(e)?JSON.parse(y.readFileSync(e,"utf8")):null,se=e=>y.existsSync(e)?U.load(y.readFileSync(e,"utf8")):null,ne=e=>{let{file:t,data:s}=e;if(Array.isArray(s)){let n=y.createWriteStream(t);n.write("[","utf-8"),s.map((o,r)=>n.write(JSON.stringify(o)+(r===s.length-1?"":","),"utf-8")),n.write("]","utf-8"),n.end(),n.on("finish",()=>{}),n.on("error",o=>{console.error(o)})}else y.writeFileSync(t,JSON.stringify(s,null,2),{encoding:"utf8"})},oe=e=>{let{file:t,data:s}=e,n=U.dump(s);y.writeFileSync(t,n,"utf8")},Ce=e=>{let{file:t}=e;if(!y.existsSync(t))return null;if(t.endsWith(".json"))return te(t);if(t.endsWith(".yaml")||t.endsWith(".yml"))return se(t);if(t.endsWith(".xlsx"))return V(e)},_e=e=>!![".json",".yaml",".xlsx",".yml"].find(s=>e.endsWith(s)),re=(e,t,s)=>{if(e.endsWith(".json"))return ne({file:e,data:t});if(e.endsWith(".yaml")||e.endsWith(".yml"))return oe({file:e,data:t});if(e.endsWith(".xlsx"))return ee({file:e,data:t.map(n=>H(n)),sheet:s&&s.sheet?s.sheet:"Sheet1"});if(e.endsWith(".csv")){let n=J.utils.json_to_sheet(t.map(r=>H(r))),o=J.utils.sheet_to_csv(n);return M(o,e)}if(e.endsWith(".tsv")){let n=J.utils.json_to_sheet(t.map(r=>H(r))),o=J.utils.sheet_to_csv(n,{FS:" "});return M(o,e)}if(e.endsWith(".xml")){let n=Se(t,{header:!0});return M(n,e)}console.error("not support type")},We=e=>{let{files:t,data:s,sheet:n}=e;t&&t.length>0&&t.map(o=>{re(o,s,{sheet:n})})};le.exports={save:M,find:ke,findOne:Re,isExsit:Fe,readJson:te,writeJson:ne,readYaml:se,writeYaml:oe,readXlsx:V,writeXlsx:ee,readFile:Ce,canReadFile:_e,writeFile:re,writeFiles:We}});var ce=_chunkUOOHSQIKjs.b.call(void 0, (Ge,ae)=>{var{readXlsx:Ae}=E(),{writeFile:Oe}=G(),ve={command:"read",describe:"load excel file",builder:{file:{alias:"f",describe:"load xlsx file ",demandOption:!0,type:"string"},sheet:{alias:"s",describe:"xlsx sheet name",demandOption:!1,type:"string"},range:{alias:"r",describe:"range of excel",default:"A1:Z2000",demandOption:!1,type:"string"},defval:{describe:"defval of cell",demandOption:!1,default:void 0,type:"string"},output:{alias:"o",describe:"output file: json, yaml, csv, tsv, xlsx",demandOption:!1,default:void 0,type:"string"}},handler(e){(async()=>{let t=Ae(e);e.output?Oe(e.output,t):console.log(JSON.stringify(t,null,2))})()}};ae.exports=ve});var ue=_chunkUOOHSQIKjs.b.call(void 0, (Ke,de)=>{var je=_chunkUOOHSQIKjs.a.call(void 0, "fs"),ie=_chunkUOOHSQIKjs.a.call(void 0, "exceljs"),qe=async e=>{let{file:t,sheet:s,range:n,defval:o,noNullRow:r}=e;if(!je.existsSync(t)){console.log("file not found, ",t);return}if(![".xlsx",".xlsm"].find(b=>t.endsWith(b))){console.log("file type error, ",t);return}let l=new ie.Workbook;await l.xlsx.readFile(t);let c=s?l.getWorksheet(s):l.worksheets[0];if(!c)return null;let{startRow:h,endRow:i,startCol:d,endCol:u}=D(n||"A1:Z2000"),p=[];return c.eachRow({includeEmpty:!1},(b,F)=>{if(F>=h&&F<=i){let S={};b.eachCell({includeEmpty:!0},(w,m)=>{if(m>=d&&m<=u){let f=c.getRow(h).getCell(m).value||`__EMPTY_${m-1}`;S[f]=w.value!==null?w.value:o}}),(!r||Object.values(S).some(w=>w!==null))&&p.push(S)}}),p},Ie=async e=>{let{file:t,data:s,sheet:n}=e;if(!(t&&s&&Array.isArray(s)&&s.length>0))return;let o=new ie.Workbook,r=o.addWorksheet(n?n.substring(0,31):"Sheet1");if(Array.isArray(s[0]))r.addRows(s);else{let l=Object.keys(s[0]);r.addRow(l),s.forEach(c=>{r.addRow(l.map(h=>c[h]))})}await o.xlsx.writeFile(t)},D=e=>{let[t,s]=e.split(":"),n=t.replace(/\D/g,""),o=s.replace(/\D/g,""),r=t.replace(/\d/g,""),l=s.replace(/\d/g,"");return{startRow:parseInt(n),endRow:parseInt(o),startCol:r,endCol:l,firstRow:`${t}:${l}${t.replace(/\D/g,"")}`,firstCol:`${t}:${r}${s.replace(/\D/g,"")}`}},$e=async(e,t)=>{let{startRow:s,endRow:n,startCol:o,endCol:r}=D(t),l=[];for(let c=s;c<=n;c++){let h=[];for(let i=o;i<=r;i++){let d=e.getCell(c,i);h.push(d.value)}l.push(h)}return l},De=async(e,t)=>{let{startRow:s,startCol:n,endCol:o}=D(t),r=[];for(let l=n;l<=o;l++){let c=e.getCell(s,l);r.push(c.value)}return r},Xe=async(e,t)=>{let{startRow:s,endRow:n,startCol:o}=D(t),r=[];for(let l=s;l<=n;l++){let c=e.getCell(l,o);r.push(c.value)}return r};de.exports={readXlsx:qe,writeXlsx:Ie,getSheetData:$e,parseRange:D,getFirstRow:De,getFirstCol:Xe}});var pe=_chunkUOOHSQIKjs.b.call(void 0, (Be,he)=>{var fe=_chunkUOOHSQIKjs.a.call(void 0, "fs"),Ne=async e=>{let{readXlsx:t,parseRange:s}=E(),n=_chunkUOOHSQIKjs.a.call(void 0, "xlsx"),o=(...a)=>{e.debug&&console.log(...a)},r=a=>{let[x,C,j]=a.split("|");return{file:x,sheet:C,range:j||"A1:Z2000",defval:null,noNullRow:!0,debug:e.debug}},l=a=>{let x=Object.values(a);return x&&x.length>0?x[0]:""},[c,...h]=e.files,i=r(c),d=n.readFile(i.file,{bookSheets:!1}),u=d.Sheets[i.sheet||d.SheetNames[0]],p=s(i.range),b=n.utils.sheet_to_json(u,{header:1,range:p.firstRow,blankrows:!0,defval:null})[0],F=n.utils.sheet_to_json(u,{header:1,range:p.firstCol,blankrows:!0,defval:null}).map(a=>a[0]);o(s(i.range)),o("Header",b),o("RowIds",F);let S=h.map(r);S.forEach((a,x)=>{let C=t(a),j=C.map(l);console.log(`================${a.sheet}=================`),j.forEach((k,q)=>{let R=F.findIndex(_=>k&&k===_);if(o(a.sheet,k,R>-1?"OK":"NG",`SheetProcess:${x+1}/${S.length}`),R>-1){let _=C[q],X=Object.keys(_).slice(1);X.forEach((A,P)=>{let I=b.findIndex(B=>B&&A===B),O=R,$=I,K=n.utils.encode_cell({r:O,c:$});u[K]={t:"s",v:_[A]},e.debug&&console.log(a.sheet,k,`RowProcess:${(P+1)/X.length*100}%`,[K,O,$,_[A]])})}})}),console.log("Merge completed successfully.");let w=e.output,m=fe.existsSync(w)?n.readFile(w,{cellDates:!0}):n.utils.book_new(),f=(e.sheet||"MergedSheet").substring(0,31);n.utils.book_append_sheet(m,u,f,!0),n.writeFile(m,w,{compression:!0})},Ee=async e=>{let{readXlsx:t,parseRange:s}=ue(),n=_chunkUOOHSQIKjs.a.call(void 0, "exceljs"),o=(...f)=>{e.debug&&console.log(...f)},r=f=>{let[a,x,C]=f.split("|");return{file:a,sheet:x,range:C||"A1:Z2000",defval:null,noNullRow:!0,debug:e.debug}},l=f=>{let a=Object.values(f);return a&&a.length>0?a[0]:""},[c,...h]=e.files,i=r(c),d=new n.Workbook;await d.xlsx.readFile(i.file);let u=d.getWorksheet(i.sheet||d.worksheets[0].name),p=s(i.range),b=u.getRow(p.startRow).values.slice(p.startCol,p.endCol+1),F=u.getColumn(p.startCol).values.slice(p.startRow,p.endRow+1);o(s(i.range)),o("Header",b),o("RowIds",F);let S=h.map(r);for(let[f,a]of S.entries()){let x=await t(a),C=x.map(l);console.log(`================${a.sheet}=================`);for(let[j,k]of C.entries()){let q=F.findIndex(R=>k&&k===R);if(o(a.sheet,k,q>-1?"OK":"NG",`SheetProcess:${f+1}/${S.length}`),q>-1){let R=x[j],_=Object.keys(R).slice(1);for(let[X,A]of _.entries()){let P=b.findIndex($=>$&&A===$),I=q+p.startRow,O=P+p.startCol;u.getCell(I,O).value=R[A],e.debug&&console.log(a.sheet,k,`RowProcess:${(X+1)/_.length*100}%`,[u.getCell(I,O).address,I,O,R[A]])}}}}console.log("Merge completed successfully.");let w=e.output,m=(e.sheet||"MergedSheet").substring(0,31);if(fe.existsSync(w)){let f=new n.Workbook;await f.xlsx.readFile(w);let a=f.getWorksheet(m);a&&f.removeWorksheet(a.id),f.addWorksheet(m,u),await f.xlsx.writeFile(w)}else u.name=m,await d.xlsx.writeFile(w)},Je={command:"merge <files..>",describe:"merge multiple excel sheets into the first sheet. (format: file|sheet|range, file|Sheet1|A1:Z2000)",builder:{output:{alias:"o",describe:"output file name",default:"MergedBook.xlsx",type:"string"},sheet:{alias:"s",describe:"xlsx sheet name",demandOption:!1,type:"string"},engine:{alias:"e",describe:"excel engine, sheetjs|exceljs",default:"sheetjs",demandOption:!1,type:"string"},debug:{alias:"d",describe:"print debug log",demandOption:!1,type:"boolean"}},handler(e){e.engine==="exceljs"?Ee(e):Ne(e)}};he.exports=Je});var we=_chunkUOOHSQIKjs.b.call(void 0, (Te,ge)=>{var{writeFiles:He}=G(),{getStdin:Me}=_chunkUOOHSQIKjs.a.call(void 0, "ts-stdin"),Pe={command:"json2",describe:"convert json to yaml, csv, tsv, xlsx",builder:{data:{alias:"d",describe:"json data",demandOption:!1,default:void 0,type:"string"},output:{alias:"o",describe:"output the request data, type: yaml, csv, tsv, xlsx",demandOption:!0,type:"array"}},handler(e){(async()=>{let t=e.data?JSON.parse(e.data):JSON.parse(await Me());e.output&&He({files:e.output,data:t})})()}};ge.exports=Pe});var Ze=()=>{let e=_chunkUOOHSQIKjs.a.call(void 0, "yargs").scriptName("xl1");e.command(ce()),e.command(pe()),e.command(we());let t=e.parse();(!t._||t._.length===0)&&e.showHelp()};Ze();
|
package/package.json
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
{
|
2
2
|
"name": "xl1",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.6",
|
4
4
|
"description": "just some xlsx script.",
|
5
5
|
"bin": {
|
6
6
|
"bash1": "dist/bash1/index.js",
|
7
7
|
"jsh1": "dist/jsh1/index.js",
|
8
8
|
"jsd1": "dist/jsd1/index.js",
|
9
9
|
"jsss": "dist/jsss/index.js",
|
10
|
+
"qidl": "dist/qidl/index.js",
|
10
11
|
"ssdl": "dist/ssdl/index.js",
|
11
12
|
"xl1": "dist/xl1/index.js"
|
12
13
|
},
|
File without changes
|