重構優化讀取合併單元格速度

2021-10-05 06:45:24 字數 2258 閱讀 2296

分別計算每張sheet的轉換時間和總共需要轉換的時間

//優化之前

2020-04

-1315:

21:37.921

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

4000

2020-04

-1315:

21:38.355

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

4000

2020-04

-1315:

21:38.856

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

10000

2020-04

-1315:

21:38.856

[main] info c.***.service.impl.formatimportserviceimpl - 全部轉換成物件時間 =

20000

//優化之後

2020-04

-1315:

21:37.921

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

7202020-04

-1315:

21:38.355

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

4332020-04

-1315:

21:38.856

[main] info c.***.service.impl.formatimportserviceimpl - 單個sheet轉換成物件時間 =

5002020-04

-1315:

21:38.856

[main] info c.***.service.impl.formatimportserviceimpl - 全部轉換成物件時間 =

2139

在獲取合併單元格時需要呼叫工具類中getmergedregionvalue的方法,之後首先獲取sheet中全部合併單元格,並迴圈判斷目標單元格的座標是否在合併單元格的範圍內,如果是則預設返回第乙個單元格的值

缺點

優點

public

static string getmergedregionvalue

(sheet sheet,

int row,

int column)

}return null;

}

並新增有參構造方法和判斷是否在合併範圍內方法

在往上封裝一層,將該物件提前預處理,將所有的合併單元格封裝進map集合中

重構getmergedregionvalue,直接從map中讀取,時間複雜度為o(1)

不足:

優點:

@data

public

class

mergeregionitem

public

boolean

isregion

(int col)

}

public

class

mergeregions

else

list.

add(

newmergeregionitem

(sheet.

getrow

(firstrow)

, address));

}}public string getmergedregionvalue

(int row,

int column)

}return null;

}public map

getmergedregionrichtext

(int row,

int column)

}return null;

}}

python Excel讀取 合併單元格讀取

python excel讀取 合併單元格讀取 後續會補充python excel寫入的部分 1.python讀取excel單元格 包含讀取excel中資料,以及出現橫向合併單元格,以及豎向合併單元格的內容。英文注釋標註了函式的功能,後又補充了部分中文注釋。合併單元格的函式通用,可以直接複製拿走,傳入...

C 讀取EXCEL合併單元格

1 無合併單元格的excel文件讀取 string strconn provider microsoft.jet.oledb.4.0 data source temp extended properties excel 8.0 oledbconnection conn new oledbconnec...

合併單元格

青年 老大,最近在 中合併單元格,總是不明就裡,好像是合併對了,有時也是蒙的,您能不能就此指條明路?禪師 這個問題很簡單,合併單元格分為跨行合併和跨列合併,這是標籤的rowspan和colspan屬性問題,已知3x3 禪師 首先說說跨行合併rowspan,由於我們書寫 的習慣是標籤包裹便簽,因此書寫...