NodeJs怎麼實作下載Excel檔案功能?下面本篇文章就來跟大家介紹一下。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
【影片教學推薦:node js教學 】
nodejs作為一門新的語言,報表功能也不是十分完善。
(1).js-xlsx : 目前Github 上star 數量最多的處理Excel 的函式庫,支援解析多種格式表格XLSX / XLSM / XLSB / XLS / CSV,解析採用純js實現,寫入需要依賴nodejs或FileSaver .js實現產生寫入Excel,可以產生子表Excel,功能強大,但上手難度稍大。不提供基礎設定Excel表格api例儲存格寬度,文件有些亂,不適合快速上手;
https://github.com/SheetJS/js-xlsx
(2). node-xlsx : 基於Node.js解析excel文件資料及產生excel文件,僅支援xlsx格式;
https://github.com/mgcrea/node-xlsx
#(3 ).excel-parser : 基於Node.js解析excel文件數據,支援xls及xlsx格式文件,需依賴python,太重不太實用;
https://github.com/leftshifters/excel- parser
(4).excel-export : 基於Node.js將資料產生匯出excel文件,產生文件格式為xlsx,可設定儲存格寬度,API容易上手,無法產生worksheet字表,比較單一,基本功能可以基本滿足;
https://github.com/functionscope/Node-Excel-Export
(5).node-xlrd : 基於node.js從excel檔案中提取數據,僅支援xls格式檔案,不支援xlsx,有點過時,常用的都是XLSX 格式。
nodejs剛出來那幾年開發人員寫了很多node依賴函式庫,但是大部分現在處於不維護狀態。
現在還在持續更新的只有node-xlsx excel-export建議使用,js-xlsx作為一個大而全的基礎庫(雖然現在也不在更行了,此庫最大的問題是api十分不友好,學習曲線高)有能力的項目組可以進一步封裝,。
本篇為一個簡單的下載的DEMO ,就簡單使用excel-export,
var express = require('express');var router = express.Router();var server = express(); server.use('/api', router); var nodeExcel = require('excel-export'); const disableLayout ={layout: false}; router.get('/test', function(req, res, next) { res.json({ code:200 }) }) // disable interface layout.hbs user config layout: falserouter.get('/exportExcel/:id', function(req, res, next) { var conf ={}; conf.stylesXmlFile = "styles.xml"; conf.name = "mysheet"; conf.cols = [{ caption:'string', type:'string', beforeCellWrite:function(row, cellData){ return cellData.toUpperCase(); }, width:300 },{ caption:'date', type:'date', beforeCellWrite:function(){ var originDate = new Date(Date.UTC(1899,11,30)); return function(row, cellData, eOpt){ console.log((cellData - originDate)); if (eOpt.rowNum%2){ eOpt.styleIndex = 1; } else{ eOpt.styleIndex = 2; } if (cellData === null){ eOpt.cellType = 'string'; return 'N/A'; } else return (cellData - originDate) / (24 * 60 * 60 * 1000); } }() },{ caption:'bool', type:'bool' },{ caption:'number', type:'number' }]; conf.rows = [ ['pi', '2013-12-5', true, 3.14], ["e", new Date(2012, 4, 1), false, 2.7182], ["M&M'", new Date(Date.UTC(2013, 6, 9)), false, 1.61803], ["null date", null, true, 1.414] ]; var result = nodeExcel.execute(conf); res.setHeader('Content-Type', 'application/vnd.openxmlformats'); res.setHeader("Content-Disposition", "attachment; filename=" + encodeURIComponent("导出列表")+".xlsx"); res.end(result, 'binary'); }); router.get('/exportmultisheetExcel/:id', function(req, res, next) { var confs = []; var conf = {}; conf.cols = [{ caption: 'string', type: 'string' }, { caption: 'date', type: 'date' }, { caption: 'bool', type: 'bool' }, { caption: 'number 2', type: 'number' }]; conf.rows = [['hahai', (new Date(Date.UTC(2013, 4, 1))).oaDate(), true, 3.14], ["e", (new Date(2012, 4, 1)).oaDate(), false, 2.7182], ["M&M'", (new Date(Date.UTC(2013, 6, 9))).oaDate(), false, 1.2], ["null", null, null, null]]; for (var i = 0; i <p>3.excel-export 提供了4種類型的資料格式,數字,時間,真假,預設字串</p><p class="brush:javascript;gutter:true;">cols可以為設定列類型的caption為列名(會填入第一行的內容),type為列資料型別,beforeCellWrite可以在填入之前對資料進行邏輯處理,width可以定義寬頻</p><p class="brush:javascript;gutter:true;">rows為二位數群組,直接按照行列方式填入excel的內容</p><p>name定義sheet的名字</p><p>值得注意的時候excel-export如果需要定義excel的預設格式,需要引用一個excel的格式頭,這個頭定義在styles.xml中,這個檔案可以在node_modules/example/styles.xml中拷貝的專案對應目錄</p><p>範例用的是根目錄,所以我們需放在根目錄,不然就會報找不到這個檔案。 </p><p>實際開發中,有時候excel的檔案匯出時要用中文,這時候要設定下header和格式化中文即可</p><p>res.setHeader('Content-Type', ' application/vnd.openxmlformats;charset=utf-8');<br>res.setHeader("Content-Disposition", "attachment; filename=" encodeURIComponent("匯出清單") ".xlsx");</p><p>#更多程式相關知識,可存取:<a href="https://www.php.cn/course.html" target="_blank" textvalue="编程入门">程式設計入門</a>! ! </p>
以上是NodeJs怎麼實作下載Excel檔案功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具