最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用easyexcel導(dǎo)出的excel文件,使用poi讀取時(shí)異常處理方案

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

場(chǎng)景

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

別的項(xiàng)目有一個(gè)需求,導(dǎo)出文件給用戶修改,修改后再次導(dǎo)入。

之前一直沒(méi)有問(wèn)題,這一天,突然報(bào)了個(gè) 【文件讀取失敗】異常!!!(這里為后臺(tái)的自定義異常信息,其原因是POI讀取文件時(shí)拋出了異常)

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

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

環(huán)境

easyexcel 2.2.6版本

找bug

現(xiàn)在下載了一個(gè)服務(wù)(使用easyexcel寫的)導(dǎo)出的,沒(méi)有經(jīng)過(guò)修改的文件A.xlsx,然后復(fù)制了一份并命名B.xlsx.

  • A.xlsx 6kb 未修改
  • B.xlsx 11kb 原6kb,只是打開(kāi)后點(diǎn)了保存。沒(méi)有動(dòng)任何數(shù)據(jù)!??!

現(xiàn)象: 

  • A文件上傳報(bào)【文件讀取失敗】
  • B文件上傳成功

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

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

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

但是直接用office軟件打開(kāi),不管哪個(gè)顯示都是正常的,沒(méi)有報(bào)錯(cuò),數(shù)據(jù)也正常,說(shuō)明它是兼容的,但是保存的時(shí)候,office會(huì)把A文件的存儲(chǔ)格式轉(zhuǎn)換為B文件。

過(guò)程如圖:

思路

我剛開(kāi)始以為是easyexcel進(jìn)行了數(shù)據(jù)或者文件壓縮導(dǎo)致的,于是我搜索了下,沒(méi)有任何有用的信息,浪費(fèi)了我好一會(huì)兒時(shí)間。

解決

靈機(jī)一動(dòng),阿里的,應(yīng)該有官方文檔,搜索了下,真有官方文檔。

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

總結(jié)

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

相關(guān)文章

  • SpringBoot接入釘釘自定義機(jī)器人預(yù)警通知

    SpringBoot接入釘釘自定義機(jī)器人預(yù)警通知

    本文主要介紹了SpringBoot接入釘釘自定義機(jī)器人預(yù)警通知,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java接口和抽象類原理詳解

    Java接口和抽象類原理詳解

    這篇文章主要介紹了Java接口和抽象類原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 基于Java ORM框架的使用詳解

    基于Java ORM框架的使用詳解

    本篇文章是對(duì)Java中ORM框架的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解feign調(diào)用session丟失解決方案

    詳解feign調(diào)用session丟失解決方案

    這篇文章主要介紹了詳解feign調(diào)用session丟失解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 如何解決@value獲取不到y(tǒng)aml數(shù)組的問(wèn)題

    如何解決@value獲取不到y(tǒng)aml數(shù)組的問(wèn)題

    文章介紹了在使用YAML配置文件時(shí),通過(guò)@Value注解獲取整數(shù)和數(shù)組列表的配置方法,并提供了兩種解決方案:一種適用于非嵌套列表,另一種適用于嵌套列表等復(fù)雜配置
    2024-11-11
  • Java通過(guò)反射來(lái)打印類的方法實(shí)現(xiàn)

    Java通過(guò)反射來(lái)打印類的方法實(shí)現(xiàn)

    本文主要介紹了Java通過(guò)反射來(lái)打印類的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • JavaScript Date時(shí)間對(duì)象的常用操作方法總結(jié)

    JavaScript Date時(shí)間對(duì)象的常用操作方法總結(jié)

    本文介紹了JavaScript中Date對(duì)象的常用操作方法,包括創(chuàng)建、獲取、設(shè)置本地及UTC時(shí)間等,幫助開(kāi)發(fā)者靈活處理日期與時(shí)間的相關(guān)需求,需要的朋友可以參考下
    2025-10-10
  • Java判斷范圍型的數(shù)據(jù)是否存在重疊的方法

    Java判斷范圍型的數(shù)據(jù)是否存在重疊的方法

    遇到了個(gè)問(wèn)題,同一天可以輸入多個(gè)時(shí)間段,但是每個(gè)時(shí)間段的時(shí)間不能出現(xiàn)重疊,這不就是判斷數(shù)據(jù)返回是否有重疊的變種嗎,所以本文給大家介紹了Java判斷范圍型的數(shù)據(jù)是否存在重疊的方法,需要的朋友可以參考下
    2024-07-07
  • Java 封裝基礎(chǔ)知識(shí)

    Java 封裝基礎(chǔ)知識(shí)

    這篇文章主要介紹了Java 封裝的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 對(duì)Netty組件的基本介紹

    對(duì)Netty組件的基本介紹

    這篇文章主要介紹了對(duì)Netty組件的基本介紹,Netty是基于Java NIO client-server的網(wǎng)絡(luò)應(yīng)用框架,使用Netty可以快速開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用,本文涵蓋了netty開(kāi)發(fā)中主要的組件的介紹,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

绥阳县| 泾川县| 苗栗市| 辽中县| 开鲁县| 昭苏县| 锡林郭勒盟| 东源县| 怀化市| 台北县| 庆城县| 班玛县| 新乡县| 贡嘎县| 涿鹿县| 东丽区| 宽甸| 安溪县| 茶陵县| 海阳市| 望江县| 沂水县| 秭归县| 福州市| 衡水市| 广南县| 商丘市| 府谷县| 金昌市| 九江县| 石台县| 武定县| 建湖县| 鄢陵县| 江都市| 普洱| 安溪县| 松潘县| 喜德县| 咸宁市| 桐梓县|