java poi 生成excel模板

2021-08-07 19:58:45 字數 1816 閱讀 1713

一、手動生產excel模板(最笨的一種實現方式,不推薦使用)

//建立excel**

hssfworkbook wb = new hssfworkbook(); //建立工作簿

hssfsheet sheet = wb.createsheet(title); //建立表單

sheet.setdefaultcolumnwidth((short) 15); //設定表單列寬

hssfdataformat format = wb.createdataformat(); //建立資料格式

hssfcellstyle style = gethssfcellstyle(wb);

//表單建立行和單元格

for(int rowsum = 0;rowsum < 1000;rowsum++)

} //設定自定義excel模板

hssfrow row = sheet.getrow(0);

string showtitle = headers;

int indextitle = 0;//excel列下標

for (short i = 0; i < showtitle.length; i++)

}//根據字段資訊設定**的excel格式

if(showtitle[i].equals(cfgmaps.get("unitprice")))

}//根據字段資訊設定數量的excel格式

if(showtitle[i].equals(cfgmaps.get("leftnum")))

}indextitle++;

}

try catch (ioexception e)

try catch (ioexception e)

}/**

* 設定單元格基礎樣式

* @param workbook

* @return

*/private static hssfcellstyle gethssfcellstyle(hssfworkbook workbook)

}

二、通過模板的形式生產excel模板檔案

public static void setexceldata(string pathname,string cfgtype)

//載入excel模板檔案,進行標題設定

fileinputstream fs = null;

poifsfilesystem ps = null;

hssfworkbook wb = null;

try catch (filenotfoundexception e) catch (ioexception e)

hssfsheet sheet = wb.getsheetat(0); // 獲取到工作表,因為乙個excel可能有多個工作表

hssfrow row = sheet.getrow(1); // 獲取第一行(excel中的行預設從0開始,所以這就是為什麼,乙個excel必須有欄位列頭),即,欄位列頭,便於賦值

iteratoriter = row.celliterator();

for (mmscfgexcel m : lists)

if(integer.parseint(cfgtype) == 1)

try catch (ioexception e1)

fileoutputstream out2 = null;

try catch (filenotfoundexception e) finally catch (ioexception e)

}}

Java Poi建立與讀取Excel

建立excel表 public class test catch parseexception e 主函式 public static void main string args 建立下拉列表 sheet sethssfvalidation sheet,textlist,0,500,2,2 寫入實體...

java POI 實現匯出excel增加行

最近用poi實現根據模板匯出excel,需要從中間行插入查詢到的資料 但是用creatrow生成的資料會覆蓋後面的模板內容 查了api沒有找到插入行的方法 不過找到shiftrows方法將最後的空行移到需要插入行的位置,再用createrow生成 sheet.shiftrows insertrown...

Java Poi獲取Excel下拉列表值

如下圖所示,需要獲取第一行 第一列單元格下拉列表值 1.新增poi所需依賴包 org.apache.poi poi3.17 org.apache.poi poi ooxml 3.17 2.具體實際 讀取excel param filepath public static void readexcel...