Npoi 合併單元格

2022-02-25 02:21:28 字數 1537 閱讀 4630

一、緣由。

最近公司的乙個需求,匯出 excel, 相同的資料進行合併,並且 還有 二級合併。

最終效果圖如下:

哈哈哈哈哈,圖表略微有些醜陋,請大家不要介意。

他的原始資料,是一條一條的,

如下圖:

二、匯出 處理 邏輯。

try

setautocolumn(sheet1, i);

//sheet1 就是 在記憶體中 填充好的 excel資料。下面合併要用到

///////

///////這裡 放置 合併方法。

///////第 0 列 合併。

mergeuser(sheet1,0);

var rowfooter = (xssfrow)sheet1.createrow(i + 3

);

//npoimemorystream 是 重寫npoi流方法

using (npoimemorystream ms = new

npoimemorystream())

}catch

(exception ex)

重寫 npoi流。

///

///重寫npoi流方法

/// public

class

npoimemorystream : memorystream

public

bool allowclose

//////

關閉

/// public

override

void

close()

}

合併 單元格 方法。

private

static

void mergeuser(isheet sheet, int

columnindex)

else

else

// 將 當前行數,進行賦值給 啟始行數。

startam =i;}}

sheet.addmergedregion(

new cellrangeaddress(startrow, rownum - 1

, columnindex, columnindex));

}startrow =rownum;}}

}

至此 ,合併結束。 

小記:

合併時 ,最好是在  新增內容 到 sheet 裡面時,進行合併,這樣的話,減少了 一次 迴圈所有資料的操作,提高了 速度問題。

以上,如果 有好的建議 歡迎 指正。

npoi獲取合併單元格 NPOI合併單元格

var filepath d 練習 雜項 npoi合併單元格 aaa.xlsx iworkbook workbook null isheet sheet null using filestream fs file.openread filepath 2007版本 if filepath.indexo...

NPOI獲取合併單元格

匯入 public static datatable roaddt string filepath 2003版本 else if filepath.indexof xls stringcomparison.ordinal 0 if workbook null else tryrownum 1 con...

NPOI匯出完美合併單元格

後台 using system using system.data using system.configuration using system.data.sqlclient using system.io using npoi.ss.usermodel using system.web usin...