国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

javascript導出csv文件(excel)的方法示例

來源:懂視網 責編:小采 時間:2020-11-27 21:51:50
文檔

javascript導出csv文件(excel)的方法示例

javascript導出csv文件(excel)的方法示例:這里貼出JavaScript導出csv文件(excel)的代碼。 /** * 導出excel * @param {Object} title 標題列key-val * @param {Object} data 值列key-val * @param {Object} fileName 文件名稱 */ function JSONToExc
推薦度:
導讀javascript導出csv文件(excel)的方法示例:這里貼出JavaScript導出csv文件(excel)的代碼。 /** * 導出excel * @param {Object} title 標題列key-val * @param {Object} data 值列key-val * @param {Object} fileName 文件名稱 */ function JSONToExc

這里貼出JavaScript導出csv文件(excel)的代碼。

/**
 * 導出excel
 * @param {Object} title 標題列key-val
 * @param {Object} data 值列key-val
 * @param {Object} fileName 文件名稱
 */
function JSONToExcelConvertor(title, data, fileName) {
 var CSV = '';
 var row = "";

 for (var i = 0; i < title.length; i++) {
 if(title[i].title){
 row += title[i].title + ',';
 }
 }
 row = row.slice(0, -1);
 CSV += row + '\r\n';

 for (var i = 0; i < data.length; i++) {
 var row = "";
 for (var j = 0; j < title.length; j++) {
 if(title[j].title){
 row += '"' + (data[i][title[j].field] ? data[i][title[j].field] : "") + '"\t,';
 }
 }
 row.slice(0, row.length - 1);
 CSV += row + '\r\n';
 }

 if (CSV == '') {
 alert("Invalid data");
 return;
 }

 var fileName = fileName;
 var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURI(CSV);
 var link = document.createElement("a");
 link.href = uri;

 link.style = "visibility:hidden";
 link.download = fileName + ".csv";
 document.body.appendChild(link);
 link.click();
 document.body.removeChild(link);
}

上面的寫法,如果excel中的數據太多,就會導致無法導出的結果,原因是瀏覽器對URL的長度有限制,因此要使用Blob對象和window.URL.createObjectURL()方法做一下改造。

window.URL.createObjectURL()方法可以直接生成blob:開頭的鏈接,該鏈接產生于瀏覽器端,不會占用服務器資源。

/**
 * 導出excel
 * @param {Object} title 標題列key-val
 * @param {Object} data 值列key-val
 * @param {Object} fileName 文件名稱
 */
function JSONToExcelConvertor(title, data, fileName) {
 var CSV = '';
 var row = "";

 for (var i = 0; i < title.length; i++) {
 if(title[i].title){
 row += title[i].title + ',';
 }
 }
 row = row.slice(0, -1);
 CSV += row + '\r\n';

 for (var i = 0; i < data.length; i++) {
 var row = "";
 for (var j = 0; j < title.length; j++) {
 if(title[j].title){
 row += '"' + (data[i][title[j].field] ? data[i][title[j].field] : "") + '"\t,';
 }
 }
 row.slice(0, row.length - 1);
 CSV += row + '\r\n';
 }

 if (CSV == '') {
 alert("Invalid data");
 return;
 }

 var fileName = fileName;
 var uri = new Blob(['\ufeff' + CSV], {type:"text/csv"});
 var link = document.createElement("a");
 link.href = URL.createObjectURL(uri);

 link.style = "visibility:hidden";
 link.download = fileName + ".csv";
 document.body.appendChild(link);
 link.click();
 document.body.removeChild(link);
}

然而,雖然window.URL.createObjectURL()方法在IE10、 IE11以及Microsoft Edge中能生成的blob:鏈接,但是卻不能把它加到一個<a>節點上,也不能直接在瀏覽器地址欄打開訪問,否則會得到【SCRIPT5:拒絕訪問。】錯誤。甚至,IE9根本不支持調用window.URL.createObjectURL()方法創建Blob URLs。

Microsoft Internet Explorer / Microsoft Edge和高大上的Google Chrome / Mozilla Firefox對于window.URL.createObjectURL()方法創建Blob鏈接最直觀的區別在于得到的blob:鏈接形式不一樣,分別在微軟瀏覽器和標準瀏覽器中運行new Blob()代碼,會得到兩種Blob鏈接形式,第一種為chrome和firefox生成的帶有當前域名的標準blob:鏈接形式,第二種為Microsoft IE和Microsoft Edge生成的不帶域名的blob:鏈接。那么我們就可以通過window.URL.createObjectURL(new Blob()) . indexOf(location.host) < 0表達式來檢測是否是IE或早期生成Object URL不帶域名的Edge,如果表達式返回true則是IE或Edge舊版本。

事實上,Blob URL不被支持是出于IE瀏覽器對安全性的考慮(IE瀏覽器真安全啊,牛逼),然后它自己提供了一套API用來創建或下載Blob文件:msSaveOrOpenBlob。

/**
 * 導出excel
 * @param {Object} title 標題列key-val
 * @param {Object} data 值列key-val
 * @param {Object} fileName 文件名稱
 */
function JSONToExcelConvertor(title, data, fileName) {
 var CSV = '';
 var row = "";

 for (var i = 0; i < title.length; i++) {
 if(title[i].title){
 row += title[i].title + ',';
 }
 }
 row = row.slice(0, -1);
 CSV += row + '\r\n';

 for (var i = 0; i < data.length; i++) {
 var row = "";
 for (var j = 0; j < title.length; j++) {
 if(title[j].title){
 row += '"' + (data[i][title[j].field] ? data[i][title[j].field] : "") + '"\t,';
 }
 }
 row.slice(0, row.length - 1);
 CSV += row + '\r\n';
 }

 if (CSV == '') {
 alert("Invalid data");
 return;
 }

 var fileName = fileName;
 var uri = new Blob(['\ufeff' + CSV], {type:"text/csv"});

 if (window.navigator && window.navigator.msSaveOrOpenBlob) { // for IE
 window.navigator.msSaveOrOpenBlob(CSV, fileName + ".csv");
 } else { // for Non-IE(chrome、firefox etc.)
 var link = document.createElement("a");
 link.href = URL.createObjectURL(uri);

 link.style = "visibility:hidden";
 link.download = fileName + ".csv";
 document.body.appendChild(link);
 link.click();
 document.body.removeChild(link);
 }
}

因此就得出上面最終的代碼。

總結

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

javascript導出csv文件(excel)的方法示例

javascript導出csv文件(excel)的方法示例:這里貼出JavaScript導出csv文件(excel)的代碼。 /** * 導出excel * @param {Object} title 標題列key-val * @param {Object} data 值列key-val * @param {Object} fileName 文件名稱 */ function JSONToExc
推薦度:
標簽: 生成 excel 辦法
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品免费观看视频播放 | 日韩在线观看一区二区三区 | 日韩电影免费在线观看网址 | 黄色小视频免费在线观看 | 国产一区亚洲二区 | 91精品国产综合久久久久久 | 久久久久女人精品毛片九一 | 国产中文在线 | 欧美日韩免费一区二区三区 | 久久久久久91 | a一区二区三区视频 | 亚洲人成一区二区三区 | 成人亚洲欧美日韩在线 | 香蕉久久ac一区二区三区 | 久久se精品一区二区国产 | 国产日韩欧美精品一区二区三区 | 亚洲一区二区三区精品视频 | 国产精选视频在线观看 | 亚洲v欧美v日韩v国产v | 国产激情视频在线 | 全免费午夜一级毛片一级毛 | 国产三级毛片 | 国产精品久久久久9999小说 | 久久精品亚洲一区二区三区浴池 | 香蕉久久一区二区不卡无毒影院 | 亚洲国产成人久久综合一 | 精品视频免费看 | 伊人激情网 | 精品一区二区视频 | 国产视频不卡 | 91亚洲国产成人久久精品网站 | 久草综合网 | 在线视频欧美日韩 | 91精品一区二区 | 日韩免费播放 | 国产区精品视频 | 国产一区二区三区 韩国女主播 | 精品国产高清自在线一区二区三区 | 国产精品久久久久久一区二区 | 日韩在线视频二区 | 日韩欧美第一页 |