這篇文章主要介紹了關於AngularJS匯出Excel指令,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
匯出想法
Excel功能,潘老師已經在部落格中將表格匯出為
csv的技術難點實現,剩下的,只是根據實際的業務需求對該指令進行完善。
HTML程式碼都匯出了,我們要的應該是人員資訊和人員資格資訊。
15列,作為參數傳給導出指令。
self.exportCols = scope.exportCols; for (let i = 0; i 原來內層循環的是所有資料列,現在改成傳入的有效資料列數。 <p></p>跨行表格<h2></h2><p><img src="https://img.php.cn//upload/image/680/867/883/1531123509788663.png" 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="https://img.php.cn//upload/image/843/685/233/1531123518744940.png" 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="https://img.php.cn//upload/image/802/452/143/1531123537590884.png" title="1531123537590884.png" alt="AngularJS匯出Excel指令"></p>因為這裡需要為新增資格證按鈕新增一個空白列,匯出的時候也會出現空白列,效果並不好。 <p></p><p><img src="https://img.php.cn//upload/image/767/939/808/1531123544352657.png" 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="https://img.php.cn//upload/image/976/352/627/1531123556704357.png" title="1531123556704357.png" alt="AngularJS匯出Excel指令">##以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網! </p><p>相關推薦:</p><p></p>AngularJS 文件閱讀的指令scope<p class="comments-box-content"><a title="AngularJS 文档阅读的指令scope" href="//m.sbmmt.com/js-tutorial-406295.html" target="_blank"></a><br></p>AngularJS 表格匯出新增額外資訊<p class="mt20 ad-detail-mm hidden-xs"><a title="AngularJS 表格导出添加额外信息" href="//m.sbmmt.com/js-tutorial-406294.html" target="_blank"></a></p>
以上是AngularJS匯出Excel指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!