AngularJS匯出Excel指令
Jul 09, 2018 pm 04:06 PM
angular.js
directive
excel
這篇文章主要介紹了關於AngularJS匯出Excel指令,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
##Excel匯出想法
參考文章- angularjs使用指令實作table導出csv專案中使用到了匯出Excel功能,潘老師已經在部落格中將表格匯出為
csv的技術難點實現,剩下的,只是根據實際的業務需求對該指令進行完善。
HTML程式碼都匯出了,我們要的應該是人員資訊和人員資格資訊。
15列,作為參數傳給導出指令。
self.exportCols = scope.exportCols; for (let i = 0; i 原來內層循環的是所有資料列,現在改成傳入的有效資料列數。 <p></p>跨行表格<h2></h2><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/680/867/883/1531123509788663.png" class="lazy" title="1531123509788663.png" alt="AngularJS匯出Excel指令"></p>以這個圖為例,第一行是有<p>15<code>列的,但是第二行的數據只有</code>4<code>列,因為其餘的列是第一行設定</code>rowspan<code>顯示的,實際上第二行的</code>tr<code>中只有人員資格</code>4 <code>個</code>td<code>。 </code></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/843/685/233/1531123518744940.png" class="lazy" title="1531123518744940.png" alt="AngularJS匯出Excel指令"></p>這就導致導出的時候第二行只有四個數據,並且是從左對齊的,所以我們需要在跨行的列中添加空數據。 <p></p>加一個條件判斷,傳入出現被跨行的列時剩餘列的長度,用來區分是正常列還是被跨行的列。 <p></p><pre class="brush:php;toolbar:false">if (self.isNormalItem(rowData)) { // 如果该列为正常列,循环内容 for (let j = 0; j 資格證出現空白列<h2></h2><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/802/452/143/1531123537590884.png" class="lazy" title="1531123537590884.png" alt="AngularJS匯出Excel指令"></p>因為這裡需要為新增資格證按鈕新增一個空白列,匯出的時候也會出現空白列,效果並不好。 <p></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/767/939/808/1531123544352657.png" class="lazy" title="1531123544352657.png" alt="AngularJS匯出Excel指令"></p>所以需要進行判斷,當出現被跨行的列時,需要判斷它的上一行的最後四項內容是否為空,如果為空,就應該把這個列的內容放到上一行。 <p></p><pre class="brush:php;toolbar:false">if (self.isNormalItem(rowData)) { // 如果该列为正常列,循环内容 ... } else if (self.isFirstItem(csvString)) { // 如果当前跨行资质是当前人员的第一个资质,则将该资质添加到上一行 // 因为能添加人员资质的界面第一行的人员资质是空的,所以需要将该资 // 质添加到上一行 csvString = self.addDataToPreString(rowData, csvString); } else { // 根据有效数据中的跨行列拼接空数据 ... }
登入後複製
else,如果目前被跨行的列是當前人員的第一個人員資質的話,就把這一行的人員資質資料加到上一行人員資質的空白處。
// 判断当前表格中资质是否是第一项资质 self.isFirstItem = function(string) { // 分隔字符串 var csvArray = string.split(','); // 循环已有字符数组的倒数四个元素,判断是否有效 for (var i = csvArray.length - 1; i >= csvArray.length - 4; i--) { if (self.isValid(csvArray[i])) { return false; } } return true; }; // 判断当前字符是否有效 // 空字符和\n视为无效 self.isValid = function(char) { if (char === '' || char === '\n') { return false; } else { return true; } }; // 添加数据到字符串的上一行 self.addDataToPreString = function(data, string) { // 字符串分隔为数据 var csvArray = string.split(','); // 循环,将有效的数据添加到上一行 for (let i = 0; i 最終實作匯出的<p>csv<code>效果:</code></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/976/352/627/1531123556704357.png" class="lazy" title="1531123556704357.png" alt="AngularJS匯出Excel指令">##以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網! </p><p>相關推薦:</p><p></p>AngularJS 文件閱讀的指令scope<p class="comments-box-content"><a title="AngularJS 文档阅读的指令scope" href="http://www.php.cn/js-tutorial-406295.html" target="_blank"></a><br></p>AngularJS 表格匯出新增額外資訊<p class="mt20 ad-detail-mm hidden-xs"><a title="AngularJS 表格导出添加额外信息" href="http://www.php.cn/js-tutorial-406294.html" target="_blank"></a></p>
登入後複製
以上是AngularJS匯出Excel指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
兩個點博物館:邦格荒地地點指南
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

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

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)