欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用easyexcel導出的excel文件,使用poi讀取時異常處理方案

 更新時間:2023年12月01日 10:19:29   作者:橙巴布  
這篇文章主要介紹了使用easyexcel導出的excel文件,使用poi讀取時異常處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

場景

一個導出服務,傳入json數(shù)據(jù),根據(jù)數(shù)據(jù)生成excel文件返回。

別的項目有一個需求,導出文件給用戶修改,修改后再次導入。

之前一直沒有問題,這一天,突然報了個 【文件讀取失敗】異常?。?!(這里為后臺的自定義異常信息,其原因是POI讀取文件時拋出了異常)

經(jīng)過研究發(fā)現(xiàn),使用服務導出的excel文件大小是6kb,但是只要打開文件,再保存,哪怕什么都不修改,文件大小會變?yōu)?strong>11kb。然后再次導入時,就能正常導入。(問我之前為什么沒問題?正經(jīng)人導出來肯定是修改了再導回去?。。?!不然原數(shù)據(jù)導回去干嘛?。。。?/p>

但是,問題既然出現(xiàn)了,那肯定要解決嘛。于是,開始了一頓的搜索…肯定是沒有搜索到,不然我就不寫這個了(也可能是搜索得不到位O(∩_∩)O哈哈~)。

環(huán)境

easyexcel 2.2.6版本

找bug

現(xiàn)在下載了一個服務(使用easyexcel寫的)導出的,沒有經(jīng)過修改的文件A.xlsx,然后復制了一份并命名B.xlsx.

  • A.xlsx 6kb 未修改
  • B.xlsx 11kb 原6kb,只是打開后點了保存。沒有動任何數(shù)據(jù)?。。?/li>

現(xiàn)象: 

  • A文件上傳報【文件讀取失敗】
  • B文件上傳成功

這里把兩個文件后綴改成rar(壓縮文件格式都可以)

然后進行了兩個文件的對比,有了以下發(fā)現(xiàn):

  • A文件的shardStrings.xml中沒有存放數(shù)據(jù),它的數(shù)據(jù)存在worksheets/sheet1.xml
  • B文件的數(shù)據(jù)存放在shardStrings.xml中,而worksheets/sheet1.xml中只記錄了sheet的一些配置信息

但是直接用office軟件打開,不管哪個顯示都是正常的,沒有報錯,數(shù)據(jù)也正常,說明它是兼容的,但是保存的時候,office會把A文件的存儲格式轉(zhuǎn)換為B文件。

過程如圖:

思路

我剛開始以為是easyexcel進行了數(shù)據(jù)或者文件壓縮導致的,于是我搜索了下,沒有任何有用的信息,浪費了我好一會兒時間。

解決

靈機一動,阿里的,應該有官方文檔,搜索了下,真有官方文檔

最終在文檔在常見問題中找到了這個解決辦法(當然,因為這里的業(yè)務是小模板數(shù)據(jù)填充,不涉及到大數(shù)據(jù)量,所以直接使用,如果有大數(shù)據(jù)量,按文檔的解釋是可能溢出的,各位按自己業(yè)務場景處理)。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Eclipse插件開發(fā)實現(xiàn)控制臺輸出信息的方法

    Eclipse插件開發(fā)實現(xiàn)控制臺輸出信息的方法

    今天小編就為大家分享一篇關(guān)于Eclipse插件開發(fā)實現(xiàn)控制臺輸出信息的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 關(guān)于junit單元測試@Test的使用方式

    關(guān)于junit單元測試@Test的使用方式

    這篇文章主要介紹了關(guān)于junit單元測試@Test的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot系列教程之防重放與操作冪等

    SpringBoot系列教程之防重放與操作冪等

    同一條數(shù)據(jù)被用戶點擊了多次,導致數(shù)據(jù)冗余,需要防止弱網(wǎng)絡等環(huán)境下的重復點擊,下面這篇文章主要給大家介紹了關(guān)于SpringBoot系列教程之防重放與操作冪等的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Java實現(xiàn)簡單員工管理系統(tǒng)

    Java實現(xiàn)簡單員工管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單員工管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 深入理解Java中@Accessors和@Builder

    深入理解Java中@Accessors和@Builder

    本文主要介紹了@Accessors和@Builder使用,區(qū)別與坑,對使用這兩個注解的有一定的幫助,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 五種SpringBoot實現(xiàn)數(shù)據(jù)加密存儲的方式總結(jié)

    五種SpringBoot實現(xiàn)數(shù)據(jù)加密存儲的方式總結(jié)

    這篇文章主要為大家詳細介紹了五種常見數(shù)據(jù)加密存儲的方法(結(jié)合SpringBoot和MyBatisPlus框架進行實現(xiàn)),文中的示例代碼講解詳細,需要的可以參考下
    2023-11-11
  • 配置SpringBoot方便的切換jar和war的方法示例

    配置SpringBoot方便的切換jar和war的方法示例

    這篇文章主要介紹了配置SpringBoot方便的切換jar和war的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java圖片處理開源框架Thumbnailator

    Java圖片處理開源框架Thumbnailator

    這篇文章主要為大家詳細介紹了Java圖片處理開源框架Thumbnailator的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java+Springboot搭建一個在線網(wǎng)盤文件分享系統(tǒng)

    Java+Springboot搭建一個在線網(wǎng)盤文件分享系統(tǒng)

    本主要介紹了通過springboot+freemark+jpa+MySQL實現(xiàn)的在線網(wǎng)盤文件分享系統(tǒng),其功能跟百度網(wǎng)盤非常類似,可以實現(xiàn)文件的上傳、移動、復制、下載等,需要的可以參考一下
    2021-11-11
  • Java編程guava RateLimiter實例解析

    Java編程guava RateLimiter實例解析

    這篇文章主要介紹了Java編程guava RateLimiter實例解析,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論