成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

為導(dǎo)入的excel增加信息反饋

Baoyuan / 1630人閱讀

摘要:導(dǎo)入信息反饋成功條,失敗條導(dǎo)出失敗原因總結(jié)現(xiàn)在這種實現(xiàn),比之前好了一些,但感覺有些地方實現(xiàn)還是不好,歡迎大家提出改進(jìn)意見。

問題描述

之前excel導(dǎo)入的時候,當(dāng)發(fā)生錯誤的我們只是提供一個導(dǎo)入失敗的錯誤提示很不友好,為此為導(dǎo)入增加錯誤信息的反饋,設(shè)計方案是在導(dǎo)入之后,將導(dǎo)入的結(jié)果返回回來,由于可能涉及到大量的數(shù)據(jù)導(dǎo)入所以將錯誤信息放在原導(dǎo)入excle的后面,導(dǎo)入完成后重新下載含有反饋信息的excel。

實現(xiàn)效果如下所示:

實現(xiàn)方法

定義一個類來保存我們的返回信息,包含成功條數(shù),失敗條數(shù),失敗時要導(dǎo)出的反饋信息。

public class ImportBackMessage {
    /**
     * 成功導(dǎo)入的數(shù)量
     */
    private int successCount = 0;
    /**
     * 失敗導(dǎo)入的數(shù)量
     */
    private int errorCount = 0;
    /**
     * 失敗反饋文件名
     */
    private String fileName;
}

將錯誤信息寫入原excel

// 保存學(xué)生信息
// 成功:將反饋的信息中成功數(shù)量加1
// 失?。簩⒎答伒男畔⒅惺?shù)量加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);
}

在這里遇到了一些問題,并沒有理想的將問題解決掉,理想的實現(xiàn)是將導(dǎo)入成功的信息刪除掉,在導(dǎo)入錯誤的信息之后增加錯誤提示。但在我們在excel中刪除成功的行時,遇到了一些問題。
最開始使用removeRow(Row row)方法發(fā)現(xiàn)該方法只能刪除行內(nèi)容,但還會保留該行的位置
后來查詢這使用了shiftRows(int startRow,int endRow,int n)這個方法用法是將startrow到endrow行之間的內(nèi)容向下移動n行,當(dāng)n為負(fù)數(shù)時向上移動。

但當(dāng)我們使用這個方法后在我們導(dǎo)出的文件產(chǎn)生了excel損壞,我無法打開,錯誤如下,

開始查了好久也沒明白為什么會出錯,之后在使用google查找Excel found unreadable content,發(fā)現(xiàn)這好像是一個Apache poi的一個bug。

所以最后的解決方法是保留成功數(shù)據(jù),在失敗的數(shù)據(jù)后面添加失敗原因。如下所示

3.將更改內(nèi)容重新寫入導(dǎo)入的excel文件中

OutputStream os=null;
os=new FileOutputStream(file);//file是導(dǎo)入的文件
workbook.write(os);
os.flush();
os.close();

4.angular顯示反饋信息

前臺只是負(fù)責(zé)信息的顯示使用了nz-modal,并增加判斷如果失敗條數(shù)大于0則顯示導(dǎo)出失敗原因的按鈕。


    

成功{{backMessage.successCount}}條,失敗{{backMessage.errorCount}}條

總結(jié)

現(xiàn)在這種實現(xiàn),比之前好了一些,但感覺有些地方實現(xiàn)還是不好,歡迎大家提出改進(jìn)意見。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74181.html

相關(guān)文章

  • 自己寫簡單java excel導(dǎo)入導(dǎo)出工具(封裝POI)

    Octopus 如何導(dǎo)入excel 如何導(dǎo)出excel Octopus Octopus 是一個簡單的java excel導(dǎo)入導(dǎo)出工具. 如何導(dǎo)入excel 下面是一個excel文件中sheet的數(shù)據(jù),有四個學(xué)生信息. studentId name sex inTime score 20134123 John M 2013-9-1 89 20124524 Joyce F 2012...

    xiangchaobin 評論0 收藏0
  • 探索大型神經(jīng)網(wǎng)絡(luò)智能調(diào)參(一):構(gòu)建大規(guī)模BPNN

    摘要:此神經(jīng)網(wǎng)絡(luò)有個隱含層,每層個節(jié)點,個是一個預(yù)測類的后向反饋神經(jīng)網(wǎng)絡(luò),建立值用以量化某聲學(xué)設(shè)備設(shè)計方案的好壞和個設(shè)計尺寸的函數(shù)關(guān)系。導(dǎo)入依賴庫用以處理矩陣數(shù)據(jù),用以可視化,用以訓(xùn)練后向反饋神經(jīng)網(wǎng)絡(luò)。 我們正在研究如何用更廉價、更高效、魯棒性更好的方法對大寬度、大深度的神經(jīng)網(wǎng)路進(jìn)行調(diào)參(hidden layer的層數(shù),每層layer的節(jié)點,epochs,batch_size)。無論如何,先...

    趙連江 評論0 收藏0
  • XCel 項目總結(jié) - Electron 與 Vue 性能優(yōu)化

    摘要:而這里的單元格信息是唯一的,所以直接通過為一個空對象賦值即可。和相關(guān)的知識和技巧高亮的列單元格采用展示。在中,被選中的單元格會高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個 Excel 數(shù)據(jù)清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數(shù)據(jù)進(jìn)行篩選。 XCEL...

    XUI 評論0 收藏0
  • Java對象和Excel轉(zhuǎn)換工具XXL-EXCEL

    摘要:一行代碼完成對象和之間的轉(zhuǎn)換。說明屬性列名稱四版本更新日志版本,新特性導(dǎo)出支持對象裝換為,并且支持字節(jié)數(shù)組等多種導(dǎo)出方式導(dǎo)入支持轉(zhuǎn)換為對象,并且支持文件路徑等多種導(dǎo)入方式版本,新特性字段支持類型。 《Java對象和Excel轉(zhuǎn)換工具XXL-EXCEL》 showImg(https://segmentfault.com/img/remote/1460000012470335);showI...

    mj 評論0 收藏0

發(fā)表評論

0條評論

Baoyuan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<