摘要:導入信息反饋成功條,失敗條導出失敗原因總結現在這種實現,比之前好了一些,但感覺有些地方實現還是不好,歡迎大家提出改進意見。
問題描述
之前excel導入的時候,當發生錯誤的我們只是提供一個導入失敗的錯誤提示很不友好,為此為導入增加錯誤信息的反饋,設計方案是在導入之后,將導入的結果返回回來,由于可能涉及到大量的數據導入所以將錯誤信息放在原導入excle的后面,導入完成后重新下載含有反饋信息的excel。
實現效果如下所示:
實現方法定義一個類來保存我們的返回信息,包含成功條數,失敗條數,失敗時要導出的反饋信息。
public class ImportBackMessage { /** * 成功導入的數量 */ private int successCount = 0; /** * 失敗導入的數量 */ private int errorCount = 0; /** * 失敗反饋文件名 */ private String fileName; }
將錯誤信息寫入原excel
// 保存學生信息 // 成功:將反饋的信息中成功數量加1 // 失敗:將反饋的信息中失敗數量加1,并且檢查實體屬性,將錯誤的信息加在該excel行后面 try { studentRepository.save(student); importBackMessage.setSuccessCount(importBackMessage.getSuccessCount() + 1); } catch (Exception e) { String backMessage = checkStudentMessage(student); Cell cell = row.createCell(importMessage.size()); if (backMessage.length() != 0) { cell.setCellValue("錯誤原因:" + backMessage); } else { cell.setCellValue("錯誤原因:未知錯誤"); } importBackMessage.setErrorCount(importBackMessage.getErrorCount() + 1); }
在這里遇到了一些問題,并沒有理想的將問題解決掉,理想的實現是將導入成功的信息刪除掉,在導入錯誤的信息之后增加錯誤提示。但在我們在excel中刪除成功的行時,遇到了一些問題。
最開始使用removeRow(Row row)方法發現該方法只能刪除行內容,但還會保留該行的位置
后來查詢這使用了shiftRows(int startRow,int endRow,int n)這個方法用法是將startrow到endrow行之間的內容向下移動n行,當n為負數時向上移動。
但當我們使用這個方法后在我們導出的文件產生了excel損壞,我無法打開,錯誤如下,
開始查了好久也沒明白為什么會出錯,之后在使用google查找Excel found unreadable content,發現這好像是一個Apache poi的一個bug。
所以最后的解決方法是保留成功數據,在失敗的數據后面添加失敗原因。如下所示
3.將更改內容重新寫入導入的excel文件中
OutputStream os=null; os=new FileOutputStream(file);//file是導入的文件 workbook.write(os); os.flush(); os.close();
4.angular顯示反饋信息
前臺只是負責信息的顯示使用了nz-modal,并增加判斷如果失敗條數大于0則顯示導出失敗原因的按鈕。
總結成功{{backMessage.successCount}}條,失敗{{backMessage.errorCount}}條
現在這種實現,比之前好了一些,但感覺有些地方實現還是不好,歡迎大家提出改進意見。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74181.html
Octopus 如何導入excel 如何導出excel Octopus Octopus 是一個簡單的java excel導入導出工具. 如何導入excel 下面是一個excel文件中sheet的數據,有四個學生信息. studentId name sex inTime score 20134123 John M 2013-9-1 89 20124524 Joyce F 2012...
摘要:此神經網絡有個隱含層,每層個節點,個是一個預測類的后向反饋神經網絡,建立值用以量化某聲學設備設計方案的好壞和個設計尺寸的函數關系。導入依賴庫用以處理矩陣數據,用以可視化,用以訓練后向反饋神經網絡。 我們正在研究如何用更廉價、更高效、魯棒性更好的方法對大寬度、大深度的神經網路進行調參(hidden layer的層數,每層layer的節點,epochs,batch_size)。無論如何,先...
摘要:而這里的單元格信息是唯一的,所以直接通過為一個空對象賦值即可。和相關的知識和技巧高亮的列單元格采用展示。在中,被選中的單元格會高亮相應的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個 Excel 數據清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數據進行篩選。 XCEL...
摘要:一行代碼完成對象和之間的轉換。說明屬性列名稱四版本更新日志版本,新特性導出支持對象裝換為,并且支持字節數組等多種導出方式導入支持轉換為對象,并且支持文件路徑等多種導入方式版本,新特性字段支持類型。 《Java對象和Excel轉換工具XXL-EXCEL》 showImg(https://segmentfault.com/img/remote/1460000012470335);showI...
閱讀 1815·2023-04-26 01:55
閱讀 1078·2021-09-30 09:47
閱讀 1673·2019-08-30 15:54
閱讀 740·2019-08-30 15:53
閱讀 692·2019-08-30 15:52
閱讀 1133·2019-08-30 15:44
閱讀 2409·2019-08-30 14:06
閱讀 1057·2019-08-29 16:39