天天看點

NPOI操作Excel(三)--解析Excel

通過前面兩篇的基礎學習,我們對NPOI有了一定了了解,下面就開始進入實戰,解析下面格式的Excel(下面隻是列舉了幾個例子),并儲存入庫

NPOI操作Excel(三)--解析Excel
NPOI操作Excel(三)--解析Excel
NPOI操作Excel(三)--解析Excel

首先我們先分析一下,要解析這樣的Excel,需要把名額【橘色背景和藍色背景】(作為名額入庫)、科目【棕色背景和黃色背景】(作為X軸入庫)、資料【乳白色背景和白色背景】(作為Y軸入庫)的資料分開入庫。

第一張圖我們得到的名額毫無疑問應該是第三行從第二列開始到最後一列的資料,而第二張圖我們得到的名額應該是非金融企業部門-使用、非金融企業部門-來源、金融機構部門-使用、金融機構部門-來源,以此類推,我們要想取到這樣的資料,首先需要把合并行的單元格填充、然後把合并列的資料合并,我們可以通過二維數組來實實作。

由于每個Excel的格式不一樣,名額資料的行數,列數也不一樣,是以我們要想把資料區分開隻能通過背景顔色,把三部分是資料分開并放到三個二維數組裡,然後解析入庫,由于Excel的背景顔色存在不一樣,是以不能寫死,通過觀察我們可以發現,每個Excel都是從名額行開始有背景顔色到資料行開始變背景顔色,這樣我們就可以區分開來,到這裡相信聰明的你已經知道怎麼做了,下面我們就開始實作吧

1、擷取Excel的擴充名并建立工作簿,如果是xls建立HSSFWorkbook工作簿,如果是xlxs建立XSSFWorkbook工作簿

2、擷取名額從哪行開始

 3、擷取名額從哪行結束

4、擷取資料從哪行開始到哪行結束

5、擷取科目【左側】的列數

6、把資料儲存到數組中【名額數組】

7、把資料儲存到數組中【科目數組】

8、把資料儲存到數組中【資料數組】

9、解析數組儲存資料

 10、上面用到的方法IsMergeCell判斷是否是合并單元格

本文參考:

https://www.cnblogs.com/zqyw/category/1070314.html