xl1 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.4",
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