// 导出表格数据处理
exportExcl(){
let exportJsonData = {
tHeader: [], //表头中文例如 ["时间",“名称”, “金额”]
filterVal: [], //表头key例如 ["time", "name", "money"]
list: [], //表格数据
total_info: '' //总计信息数据,可以没有为空,表格顶部做统计使用
}
//处理数据
this.columns.map(colunm=>{
colunm.label&&exportJsonData.tHeader.push(colunm.label)
colunm.prop&&exportJsonData.filterVal.push(colunm.prop)
})
// 执行导出方法
this.exportPathMethod(exportJsonData, "账单报表");
},
//导出数据组合
exportPathMethod(data, setName) {
/*
*注:csv文件:","逗号换列,\n换行,\t防止excel将长数字变科学计算法等样式
*/
//要导出的json数据
let mainLists = data; //主表
//## 数据处理
//一级表
let mainTitle = mainLists.tHeader; //一级标题
let mainTitleForKey = mainLists.filterVal; //一级过滤
let mainList = this.tableDatas; //一级数据
let mainStr = [];
mainStr.push(mainTitle.join(",") + "\n"); //标题添加上换列转成字符串并存进数组
mainList.forEach(e => {
let temp = [];
mainTitleForKey.forEach(f => {
console.log(f,e);
if (f=='sendType') { //当是数字时
let s = e[f];
let c= this.dict.type.notice_type.find(item=>item.value==e[f])//字典类型根据查询值查询到相应的lable
temp.push(c.label); //根据过滤器拿出对应的值
} else {
temp.push(e[f]); //根据过滤器拿出对应的值
}
})
mainStr.push(temp.join(",") + "\n"); //取出来的值加上逗号换列转字符串存数组
})
//两个表数组转成字符串合并
let merged = mainStr.join("");
//## 导出操作
// encodeURIComponent解决中文乱码
const uri =
"data:text/csv;charset=utf-8,\ufeff" +
encodeURIComponent(merged);
// 通过创建a标签实现
let link = document.createElement("a");
link.href = uri;
// 对下载的文件命名
link.download = setName + `.csv`;
document.body.appendChild(link);
link.click();
},