问题描述
我有react页面,该页面从DB检索表并将其转换为csv,然后转换为xlsx。通过以下更改,我将获得无边框且列标题不是粗体的excel。谁能建议一些以我想要的格式获得Excel的方法
边界线应较粗,列标题应为粗体,带有列标题的第一行应为灰色填充。
convertToCSV=(objArray)=> {
const header=[];
let data=[];
for(let i=0; i< this.state.columns.length; i++){
header.push(this.state.column[i].field);
}
data.push(header);
objArray.map(function(row){
let rowArray=[];
header.map(function(fieldName){
rowArray.push(row[fieldName]);
});
data.push(rowArray);
});
return data;
}
render(){
exportButtom:true,exportCsv:(data)=>{
let title= this.state.title;
var csv=this.convertToCSV(data);
var wb= XLSX.utils.book_new();
wb.SheetNames.push(title);
var ws_data=csv;
var ws= XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets[title]=ws;
var wbout=XLSX.write(wb,{bookType:'xlsx',type:'binary'});
function s2ab(s){
var buf=new ArrayBuffer(s.length);
var view=new Unit8Array(buf)
for(var i=0; i<s.length; i++) view[i]=s.charCodeAt[i] & 0xFF;
return buf;
}
saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}),title+ '.xlsx');
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)