網站開發進階(三十一)js如何將html表格導出為excel文件(后記)

      網友投稿 878 2025-04-03

      js如何將html表格導出為excel文件(后記)


      前言

      項目前期做了個導出Excel表格的功能,但是經過測試發現只有在IE上才可以正確實現,在Chrome等瀏覽器中無法實現導出效果。經過上網搜索,嘗試通過插件的形式實現。通過安裝ActiveX?for?Chrome插件(地址欄輸入chrome://extensions/?進入擴展程序安裝頁面)。

      經過測試,選擇ActiveX插件的形式并不能解決問題,故棄擲。經過一番網絡搜索,查到一個好的方法,其通過FileSaver.js實現瀏覽器寫入文件到本地磁盤。代碼如下:

      按照前面訂單打印的思路,在頁面中嵌入一隱藏元素,然后獲取其內容。隱藏元素代碼如下:

      {{querydata}}

      獲取結果如下:

      接下來需要做的工作解析上面的返回結果,然后拼接成Excel導出方法所需形式。

      解析代碼如下:

      var content = document.getElementById("sunny").innerHTML;

      // alert(content);

      var contentText = "藥品名,藥品ID,價格(元),數量(盒),下單時間,訂單ID,訂單內容,購藥者,處方藥,藥品種類\n";

      var obj = JSON.parse(content); // 由JSON字符串轉換為JSON對象

      // alert(obj.length);

      var billDtl = '';

      for(k=0; k

      var bill = obj[k];

      var content = '';

      var index = bill.billContent.indexOf(',');

      // alert(index);

      if(index != -1){

      var contentArray = bill.billContent.split(",");

      if(contentArray.length > 1){

      for(j=0; j

      content += contentArray[j] + '、';

      }

      content += contentArray[j];

      }

      // alert(content);

      }

      billDtl += bill.medname + "," + bill.medid + "," + bill.medprice + "," + bill.sellcnt + "," + bill.tx_time + "," + bill.billid + ","

      + content + "," + bill.buy_uid + "," + bill.iscf + "," + bill.medtype + "\n";

      }

      alert(billDtl);

      其中主要涉及到

      json數組字符串轉換為json數組:

      var?obj?=?JSON.parse(content);?//?由JSON字符串轉換為JSON對象

      訂單內容格式化:

      var?content?=?'';

      var?index?=?bill.billContent.indexOf(',');

      //alert(index);

      if(index?!=?-1){

      var?contentArray?=?bill.billContent.split(",");

      if(contentArray.length?>?1){

      for(j=0;?j

      content?+=?contentArray[j]?+?'、';

      }

      content?+=?contentArray[j];

      }

      //alert(content);

      }else{

      content?=?bill.billContent;

      }

      訂單內容拼接:

      billDtl?+=?bill.medname?+?","?+?bill.medid?+?","?+?bill.medprice?+?","?+?bill.sellcnt?+?","?+?bill.tx_time?+?","?+?bill.billid?+?","?+?content?+?","

      +?bill.buy_uid?+?","?+?bill.iscf?+?","?+?bill.medtype?+?"\n";

      至此,Ecxel可實現導出功能,唯一的缺陷就是不存在文件命名,存儲位置選擇的對話框。

      為了解決文件命名、存儲位置選擇問題,自己不得不放棄原來的導出方法,嘗試使用如下方法:

      (function (){

      Downloadify.create('downloadify',{

      filename: function(){

      //return document.getElementById('filename').value;

      return "Sunny.csv";

      },

      data: function(){

      var content = document.getElementById("sunny").innerHTML;

      // alert(content);

      var contentText = "藥品名,藥品ID,價格(元),數量(盒),下單時間,訂單ID,訂單內容,購藥者,處方藥,藥品種類\n";

      var obj = JSON.parse(content); // 由JSON字符串轉換為JSON對象

      // alert(obj.length);

      var billDtl = '';

      for(k=0; k

      var bill = obj[k];

      var content = '';

      var index = bill.billContent.indexOf(',');

      // alert(index);

      if(index != -1){

      var contentArray = bill.billContent.split(",");

      if(contentArray.length > 1){

      for(j=0; j

      content += contentArray[j] + '、';

      }

      content += contentArray[j];

      }

      // alert(content);

      }else{

      content = bill.billContent;

      }

      billDtl += bill.medname + "," + bill.medid + "," + bill.medprice + "," + bill.sellcnt + "," + bill.tx_time + "," + bill.billid + ","

      + content + "," + bill.buy_uid + "," + bill.iscf + "," + bill.medtype + "\n";

      }

      alert(billDtl);

      return "\ufeff" + contentText + billDtl;

      },

      onComplete: function(){

      alert('保存成功!');

      },

      onCancel: function(){

      },

      onError: function(){

      alert('保存失敗!');

      },

      transparent: false,

      swf: 'img/downloadify.swf',

      downloadImage: 'img/download.png',

      width: 100,

      height: 30,

      transparent: true,

      append: false

      });

      })();

      經過UI的稍微調整,問題總算得以解決。

      參考文獻

      1.http://www.chromi.org/archives/10618

      2.http://www.oschina.net/news/16501/new-plugin-make-chrome-support-activex

      3.http://zhidao.baidu.com/link?url=-wD7FbuwVMYGGgCr4X65CmL73z7TF53dzYWD2Z1-t1ysM0U2CyyyzSymO43DaAgUpEcJ1zwm_mgT8JdGo26Om2t6h5yWTW0TzPJ3rXjP6rS

      4.http://baike.baidu.com/link?url=tXq95A_vT1Ksgruf2wFAxzwzYocQk-UD3YQ6hYVwL1CORcCax7ThRE7jypfkqVEaXQ9wgieKECONqx7tp75SHw2-OJ8v9XYCNcFqGC4j2V3

      5.http://my.oschina.net/tongjh/blog/316938

      6.http://www.jb51.net/article/43136.htm

      7.http://www.ynpxrz.com/n763517c2025.aspx

      8.http://www.dreamdu.com/xhtml/tag_param/

      有圖有真相

      美文美圖

      HTML 云速建站 網站

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:在Word2007文檔中怎么插入表格題注(word文檔表格怎么添加題注)
      下一篇:excel利潤表的方法步驟詳解(excel表格利潤表怎樣做)
      相關文章
      亚洲AV无码久久| 国产亚洲大尺度无码无码专线| 亚洲乱码中文字幕综合| 亚洲国产成人精品女人久久久 | 亚洲国产日韩在线成人蜜芽| 内射干少妇亚洲69XXX| 亚洲免费在线播放| 亚洲AV成人一区二区三区AV| 亚洲欧洲精品无码AV| 久久久久亚洲精品男人的天堂 | 亚洲白色白色永久观看| 久久久久久亚洲AV无码专区| 亚洲人成亚洲精品| 91在线精品亚洲一区二区| 久久久无码精品亚洲日韩京东传媒| 亚洲自偷自拍另类12p| 久久亚洲精品无码VA大香大香| 中文字幕亚洲色图| 在线免费观看亚洲| 亚洲人成日本在线观看| 亚洲影视自拍揄拍愉拍| 91丁香亚洲综合社区| 亚洲 欧洲 自拍 另类 校园| 亚洲依依成人亚洲社区| 亚洲av无码兔费综合| 国产精品亚洲精品爽爽| 久久亚洲中文字幕精品一区| 九月丁香婷婷亚洲综合色| 亚洲A∨无码无在线观看| 亚洲一二成人精品区| 亚洲国产成人精品无码区在线秒播 | 亚洲AV成人无码网天堂| 亚洲av无码成人精品区在线播放| 亚洲精品无码99在线观看 | 亚洲午夜久久久久久久久久| 亚洲成在人线av| 亚洲酒色1314狠狠做| www.亚洲日本| 色综合久久精品亚洲国产| 亚洲精品国产V片在线观看| 亚洲人成色777777在线观看|