国产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:拒絕訪問?!垮e誤。甚至,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精品一区 | 不卡一区二区三区四区 | 国产精品日本一区二区不卡视频 | 亚洲成a人一区二区三区 | 久久精品国内一区二区三区 | 国产一级特黄a大片99 | 91精品国产乱码久久久久久 | 黄a免费| 国产不卡视频在线观看 | 国产原创视频在线 | 国产精品精品视频 | 日本另类αv欧美另类aⅴ | 欧美日韩在线第一页 | 亚洲色图欧美另类 | 亚洲 欧美 日韩 在线 | 欧美日韩福利 | 看全色黄大色黄女片爽毛片 | 日韩 国产 欧美 | 国产99久久精品一区二区 | 亚洲wuma | 国产99视频在线观看 | 国产成人+综合亚洲+天堂 | 欧美啊v在线观看 | 亚洲国产精久久久久久久 | 美国一级大黄大色毛片 | 国产成人一区二区三区 | 亚洲欧美在线观看 | 91综合 | 国产精品视频福利一区二区 | 伊人久久综合成人网小说 | 亚洲欧美日本另类 | 日韩激情影院 | 99久久成人国产精品免费 | 视频在线一区二区 | 国产一区精品 | 悠悠色综合 | 91精品久久久久久久久久 |