1需求:導出excel后自動換行顯示。
2插件:Export2Excel
3.測試
listToExcel() { import('@/vendor/Export2Excel').then(excel => { const tHeader = ['姓名', '專業', '最高學歷', '技術職稱', '職務', '承擔任務', '電話', '出生日期', '身份證號', '郵箱', '教育背景', '工作經歷', '備注', '單位名稱'] const filterVal = ['Name', 'Major', 'HighestDegreeName', 'TechnicalTitleName', 'Duty', 'UndertakeTask', 'Telphone', 'BirthDate', 'IDNum', 'Email', 'EduBackground', 'WorkExperience', 'Comment', 'CompanyName'] const list = this.excelList //數據源 const data = this.formatJson(filterVal, list) excel.export_json_to_excel({ header: tHeader, data, filename: this.filename, autoWidth: this.autoWidth }) this.downloadLoading = false }) }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => { if (j === 'BirthDate') { const date = /\d{4}-\d{1,2}-\d{1,2}/g.exec(v[j]) return date } // if (j === 'WorkExperience') { // if (v[j]) { // // console.log(v[j].replace(/\r/g, '\\r')) // // console.log(v[j].replace(/\n/g, '\\n')) // // v[j].replace(/\n/g, '\r\n') // // console.log(v[j].replace(/\n/g, String.valueOf('(char)10'))) // // console.log(v[j].replace(/\n/g, String.valueOf('char(10)'))) // return v[j].replace(/\n/g, String.valueOf('char(10)')) // } // return null // } return v[j] })) },
測試結果表明:
1elementUI input組件 鍵入enter后輸入的換行符是\n
2Export2Excel 已經將\n 正確轉義;
3 將\n 替換為\r\n 、\char(10) ,Excel中仍然不會自動換行顯示。
Export2Excel源碼中找了半天也沒找到這個“自動換行顯示”配置項,可能根本沒有。
4簡單替代方案:
方案一:在Excel中選中列--點擊菜單 開始--對齊方式--自動換行
方案二:在Excel中選中列--右鍵-設置單元格格式--對齊-勾選 自動換行