springmvc poi實現報表匯出

2021-07-26 03:27:43 字數 3340 閱讀 4855

1.pom檔案:

<

dependency

>

<

groupid

>org.apache.poi

groupid

>

<

artifactid

>poi

artifactid

>

<

version

>3.15

version

>

dependency

>

<

dependency

>

<

groupid

>org.apache.poi

groupid

>

<

artifactid

>poi-ooxml

artifactid

>

<

version

>3.15

version

>

dependency

>

2.controller 根據需要組裝資料:

private list> createlist(listusers)

string keys = ;

string excelheader = ;

list

> list = new arraylist>();

mapmodel = new hashmap();

model.put("filename", "使用者表" + new

date().gettime());

model.put("sheetname", "表一");

model.put("title", "使用者表");

model.put("keys", keys);

model.put("excelheader", excelheader);

list.add(model);

for(user user : users)

return

list;

}

3.excelutil:

private

static

final logger log = logge***ctory.getlogger(excelutil.class

);

/**建立乙個excel檔案

*/private

static

workbook createworkboot(string title,

string excelheader, list

>list, string keys)

/*font樣式設定字型大小,是否加粗

*/font titlefont = createfont(workbook, (short)20, true

); font headerfont = createfont(workbook, (short)12, true

); font bodyfont = createfont(workbook, (short)12, false

);

/*cell通用樣式

*/cellstyle titlestyle =createstyle(workbook, titlefont);

cellstyle headerstyle =createstyle(workbook, headerfont);

cellstyle bodystyle =createstyle(workbook, bodyfont);

//excel中當前行索引

int index = 0;

/*合併標題的單元格設定標題資訊及樣式

*/sheet.addmergedregion(

newcellrangeaddress(index, index, index,

excelheader.length - 1));

row titlerow = sheet.createrow(index++);

cell titlecell = titlerow.createcell(0);

titlecell.setcellvalue(title);

titlecell.setcellstyle(titlestyle);

/*設定**頭資訊及樣式

*/row headerrow = sheet.createrow(index++);

for(int i = 0; i < excelheader.length; i++)

/*設定每行每 列的值及樣式

*row為行,cell為方格

*建立i*j個方格並設定對應的屬性值

*/for(int i = 1; i < list.size(); i++)

}return

workbook;

}/**設定字型大小,顏色,樣式,是否加粗

*/private

static

font createfont(workbook workbook,

short fontheightinpoints, boolean

isblod)

/**設定字型居中顯示,背景色,邊框

匯出效果

USACO Hamming Codes 解題報告

資料小,暴力搜尋可以搞定。但是推薦使用dfs,每個節點 數 有取與不取兩個分支。注意 0是必須出現的。證明如下 最終得到的結果序列中,0是必須出現的,證明如下 如果存在另乙個滿足要求的結果序列s 其最小值為a1 n 0,那麼序列s s n 是滿足條件的最小解,且首元素為0 id xpli1 prog...

USACO Closed Fences 解題報告

幾何題看著就很有畏懼感。這裡用的是最 的演算法,時間複雜度應該在n 2。還沒看別人的解題報告,不過我猜nlogn的解法是有的。比如判斷乙個fence是不是valid的時候,這裡將所有的線段兩兩比較,看是否相交。但是有個叫line sweep的演算法,可以在nlogn的時間複雜度內完成。既然accep...

Wiggle Subsequence解題報告

這道題和最長子序列,divisible subset題目類似,都可以用o n2 的時間複雜度完成。可以想象,對於第i個數,dp i dp j 1,當且僅當dp j 1 dp i 而且nums j 和nums i 的差值和j所處位置的差值符號相反。所以,如下 class solution if dp ...