const fs = require('fs');
const path = require('path');
const uuidv4 = require('uuid');
var q = require('qiao-zip');
const os = require("os");
/*
name:biao[j][nameid],
xuehao:biao[j][xuehaoid],
sex:biao[j][sex],
classid:biao[j][classid],
xueyuan:biao[j][xueyaunid],
idcard:biao[j][idcardid],
ruxuetime:ruxue,
iphone:biao[j][iphone],
parentphone:biao[j][parentphone],
parentname:biao[j][parentname],
*/
function nametop(){
}
async function makeExcel(exceljson) {
let wblist=[]//excel文本列表
wblist.push("姓名");
wblist.push("学号")
wblist.push("性别")
wblist.push("专业");
wblist.push("学院")
wblist.push("身份证号")
wblist.push("入学时间")
wblist.push("手机号")
wblist.push("默认密码")
let listexcel=""
//console.log(exceljson);
exceljson.map((value,index) => {
let nameindex = wblist.indexOf(value.name);
if (nameindex == -1) {
wblist.push(value.name);
nameindex = wblist.indexOf(value.name);
}
let namexml = `${nameindex} `;
let xuehaoindex
= wblist.indexOf(value.xuehao);
if (xuehaoindex === -1) {
wblist.push(value.xuehao);
xuehaoindex = wblist.indexOf(value.xuehao);
}
let xuehaoxml = `${xuehaoindex} `
let sexindex = wblist.indexOf(value.sex);
if (sexindex === -1) {
wblist.push(value.sex)
sexindex = wblist.indexOf(value.sex)
}
let sexxml = `${sexindex}`
let classindex = wblist.indexOf(value.classid);
if (classindex === -1) {
wblist.push(value.classid);
classindex = wblist.indexOf(value.classid);
}
let classxml = `${classindex}`
let xueyuanindex = wblist.indexOf(value.xueyuan);
if (xueyuanindex === -1) {
wblist.push(value.xueyuan);
xueyuanindex = wblist.indexOf(value.xueyuan);
}
let xueyuanxml = `${xueyuanindex}`
let idcardindex = wblist.indexOf(value.idcard);
if (idcardindex === -1) {
wblist.push(value.idcard);
idcardindex = wblist.indexOf(value.idcard);
}
let idcardxml = `${idcardindex}`
let ruxuetimeindex = wblist.indexOf(value.ruxuetime);
if (ruxuetimeindex === -1) {
wblist.push(value.ruxuetime);
ruxuetimeindex = wblist.indexOf(value.ruxuetime);
}
let ruxuetimexml = `${ruxuetimeindex}`
let iphoneindex = wblist.indexOf(value.iphone);
if (iphoneindex === -1) {
wblist.push(value.iphone);
iphoneindex = wblist.indexOf(value.iphone);
}
let iphonexml = `${iphoneindex}`
let passwordindex = wblist.indexOf(value.password);
console.log(value.password)
if (passwordindex === -1) {
wblist.push(value.password);
passwordindex = wblist.indexOf(value.password);
}
let passwordxml = `${passwordindex}`
const xmlall=namexml+xuehaoxml+sexxml+classxml+xueyuanxml+idcardxml+ruxuetimexml+iphonexml+passwordxml;
const row=`${xmlall}
`
listexcel+=row;
})
let moban=fs.readFileSync("sheet2.xml","utf8")
let shuzu= moban.split("shuliang");
moban=shuzu[0]+`I${exceljson.length+1}`+shuzu[1];
shuzu=moban.split("charuwengjian");
moban=shuzu[0]+listexcel+shuzu[1];
let stringlist="";
wblist.map((value,index)=>{
const wbxml=`${value}`
stringlist+=wbxml;
})
let wbxml=fs.readFileSync("sharedStrings.xml","utf8")
let wbshuzu=wbxml.split("wblist");
wbxml=wbshuzu[0]+stringlist+wbshuzu[1];
const cacheDir = path.join(os.homedir(), '.cache');
const filedir=cacheDir+'\\learn\\'+uuidv4.v4();
console.log(filedir)
fs.mkdirSync(filedir);
await q.unzip("scexcelstu.zip", filedir)
fs.writeFileSync(`${filedir}\\xl\\sharedStrings.xml`,wbxml)
fs.writeFileSync(`${filedir}\\xl\\worksheets\\sheet1.xml`,moban)
const uuidv41=uuidv4.v4();
const dir=`C:\\Users\\l\\WebstormProjects\\examp\\serve\\nginx\\html\\stuexcel\\${uuidv41}.zip`;
await q.zip(filedir, dir,false)
fs.copyFileSync(dir,`C:\\Users\\l\\WebstormProjects\\examp\\serve\\nginx\\html\\stuexcel\\${uuidv41}.xlsx`)
return(`http://localhost:89/stuexcel/${uuidv41}.xlsx`);
}
exports.makeExcel=makeExcel;