亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

Baoyuan / 1709人閱讀

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

問題描述

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

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

實(shí)現(xiàn)方法

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

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

將錯(cuò)誤信息寫入原excel

// 保存學(xué)生信息
// 成功:將反饋的信息中成功數(shù)量加1
// 失?。簩⒎答伒男畔⒅惺?shù)量加1,并且檢查實(shí)體屬性,將錯(cuò)誤的信息加在該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("錯(cuò)誤原因:" + backMessage);
    } else {
        cell.setCellValue("錯(cuò)誤原因:未知錯(cuò)誤");
    }
    importBackMessage.setErrorCount(importBackMessage.getErrorCount() + 1);
}

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

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

開始查了好久也沒明白為什么會(huì)出錯(cuò),之后在使用google查找Excel found unreadable content,發(fā)現(xiàn)這好像是一個(gè)Apache poi的一個(gè)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)在這種實(shí)現(xiàn),比之前好了一些,但感覺有些地方實(shí)現(xiàn)還是不好,歡迎大家提出改進(jìn)意見。

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

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

相關(guān)文章

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

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

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

    摘要:而這里的單元格信息是唯一的,所以直接通過為一個(gè)空對象賦值即可。和相關(guān)的知識和技巧高亮的列單元格采用展示。在中,被選中的單元格會(huì)高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個(gè) 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條評論

最新活動(dòng)
閱讀需要支付1元查看
<