angular8 導出excel文件

来源:https://www.cnblogs.com/shuangzikun/archive/2019/12/12/12028480.html
-Advertisement-
Play Games

angular package 1、xlsx npm install xlsx --save 2、file-saver npm install file-saver --save npm install @types/file-saver --save 3、實現導出多個sheet的數據 export ...


angular

 

package

1、xlsx  

  npm install xlsx --save

2、file-saver

  npm install file-saver --save

  npm install @types/file-saver --save

3、實現導出多個sheet的數據

exportExcel() {
    import("xlsx").then(xlsx => {
      // const worksheet = xlsx.utils.json_to_sheet(this.getCars());
      console.log(this.BeautifuleValue);
      var all = [
        [],
        [],
        []
      ];
      this.BeautifuleValue.districtBeautifyAdjustedValue.forEach(element => {
        all[0].push(
          {
            '區縣': this.districtName[element.customer],
            '美化繫數': element.coefficient,
            '美化值': element.beautifyValue
          }
        );
      });
      this.BeautifuleValue.platBeautifyAdjustedValue.forEach(element => {
        all[1].push(
          {
            '平臺': this.platName[element.plat],
            '美化繫數': element.coefficient,
            '美化值': element.beautifyValue
          }
        );
      });
      this.BeautifuleValue.industryBeautifyAdjustedValue.forEach(element => {
        all[2].push(
          {
            '行業': element.industry,
            '美化繫數': element.coefficient,
            '美化值': element.beautifyValue
          }
        );
      });
      const oneSheet = xlsx.utils.json_to_sheet(all[0]);
      const twoSheet = xlsx.utils.json_to_sheet(all[1]);
      const threeSheet = xlsx.utils.json_to_sheet(all[2]);
      const workbook = { Sheets: { '區縣': oneSheet, '平臺': twoSheet, '行業': threeSheet }, SheetNames: ['區縣', '平臺', '行業'] };
      const excelBuffer: any = xlsx.write(workbook, { bookType: 'xlsx', type: 'array' });
      this.saveAsExcelFile(excelBuffer, "美化值");
    });
  }

  saveAsExcelFile(buffer: any, fileName: string): void {
    import("file-saver").then(FileSaver => {
      let EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
      let EXCEL_EXTENSION = '.xlsx';
      const data: Blob = new Blob([buffer], {
        type: EXCEL_TYPE
      });
      FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
    });
  }

 






您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 案例:簡單輪播圖 div叫盒子,裡面包了2個小盒子,一個是inner,一個是square inner的div是放ul,裡面有li,a,和圖片 square的div裡面放span,是輪播圖的小點 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
  • 本文重點介紹Vue單頁面應用的優化手段: 非同步載入 面切換時加loading特效 點擊延遲 inline manifest 邏輯代碼優化 依賴包體積優化 cdn引用 Vue代碼優化 非同步載入 所謂的非同步載入組件,其實就是組件懶載入。可以理解為:當我需要使用組件的時候才進行載入。主要包含兩部分:路由配 ...
  • 動畫函數封裝:設置任意的一個元素,移動到指定的目標位置 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> <style> div{ width: 200px; height: 200 ...
  • 案例:移動元素,封裝動畫函數 1. div要移動,要脫離文檔流 position:absolute 2. 如果樣式的代碼是在style的標簽中設置,外面是獲取不到 3. 如果樣式的代碼是在style的屬性設置,外面是可以獲取 4. 獲取div的當前位置 console.log(my$("dv").o ...
  • 案例:設置div的寬度 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> <style> * { margin: 0; padding: 0; } div { width: 200p ...
  • 案例:點擊按鈕設置div背景色漸變 背景色漸變:設置透明度 <div id="dv"></div> <input type="button" value="漸變" id="btn" /> <script src="common.js"></script> <script> my$("btn").on ...
  • 案例:協議按鈕倒計時和禁用 <textarea name="texta" id="" cols="30" rows="10"> 這個世界就是這麼瘋狂,你不同意,我就讓你註冊,秦始皇,打錢 </textarea> <input type="button" value="請仔細閱讀協議(5)" id=" ...
  • 之前學的定時器:setInterval和清除定時器 clearInterval(定時器id); //常用的,反覆的執行 window.setInterval(function () { alert("哈哈"); }, 1000); window.clearInterval(定時器id);//清理定時 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...