We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
导出的时候,希望一列数据,相同的自动进行合并,为此写了一点js,希望能加入到组件中。
const autoMergeCellArr={} /* @param {Object} o 当前数据行对象 * @param {String|null} parent 合并参照属性,无参照可以填null或空字符串 * @param {String} name 合并列属性 * @param {Uint} col 当前列号,在模板中固定为_col * @param {Uint} row 当前行号,在模板中固定为_row * @param {Array} f 单元格合并范围数组,在模板中固定为_mergeCellArr_ * @return {undefined} 没有返回值 */ const autoMergeCell = (o,parent,name,col,row,f)=>{ //模板里调用需要添加以下语句,其中后三个参数不变 //《%autoMergeCell(r,null,"XZ",_col,_row,_mergeCellArr_)%》 const key = parent+"_"+name const now = {col_s : col,col_e :col, row_s :row ,row_e :row,p : o[parent],v:o[name]} const last = autoMergeCellArr[key] if(last === undefined || now.p!==last.p || now.v!==last.v){ autoMergeCellArr[key]=now; return; } last.col_e = col last.row_e = row last.p=now.p last.v=now.v if(last.col_s!==last.col_e || last.row_s!==last.row_e){ //需要合并 let s = last.col_s+last.row_s+":"+last.col_e+last.row_e let i = f.findIndex(v=>v.startsWith(last.col_s+last.row_s+":")) if(i>-1)f[i] = s else f.push(s) } }
实现效果如下:
模板内占位符内容如下
序号 :<%forRow r,i in _data_.data%><%~i+1%> 施工性质:<%=r.XZ%><%autoMergeCell(r,null,"XZ", _col, _row, _mergeCellArr_)%> 施工级别:<%=r.DJ%><%autoMergeCell(r,"XZ","DJ", _col, _row, _mergeCellArr_)%>
如果能加入到新版本中的话,autoMergeCell的最后三个参数其实应该是可以不用的了
PS:我在VUE中使用的代码如下
//生成Excel文件 const that = this const ejsexcel = require("ejsexcel"); (async function() { //不写这一行导出会出错 if(window.setImmediate === undefined)window.setImmediate = f=>setTimeout(f,0) const exlBuf = await JSZipUtils.getBinaryContent('Template/' + that.xlsxName + '.xlsx') const exlBuf2 = await ejsexcel.renderExcel(Buffer.from(exlBuf), xlsData); saveAs(new Blob([exlBuf2]) , that.xlsxName + '.xlsx') })();
The text was updated successfully, but these errors were encountered:
No branches or pull requests
导出的时候,希望一列数据,相同的自动进行合并,为此写了一点js,希望能加入到组件中。
实现效果如下:
模板内占位符内容如下
如果能加入到新版本中的话,autoMergeCell的最后三个参数其实应该是可以不用的了
PS:我在VUE中使用的代码如下
The text was updated successfully, but these errors were encountered: