一、緣由。
最近公司的乙個需求,匯出 excel, 相同的資料進行合併,並且 還有 二級合併。
最終效果圖如下:
哈哈哈哈哈,圖表略微有些醜陋,請大家不要介意。
他的原始資料,是一條一條的,
如下圖:
二、匯出 處理 邏輯。
trysetautocolumn(sheet1, i);
//sheet1 就是 在記憶體中 填充好的 excel資料。下面合併要用到
///////
///////這裡 放置 合併方法。
///////第 0 列 合併。
mergeuser(sheet1,0);
var rowfooter = (xssfrow)sheet1.createrow(i + 3重寫 npoi流。);
//npoimemorystream 是 重寫npoi流方法
using (npoimemorystream ms = new
npoimemorystream())
}catch
(exception ex)
///合併 單元格 方法。///重寫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...