POI操作excel示例工具類

2021-06-09 15:22:33 字數 4375 閱讀 3503

由於近期專案要用到excel來轉存頁面中的表單資料,對poi操作excel進行了一番了解,寫了以下,但總覺的不是很好

1. workbook處理類

/**

* excel workbook工具類

* @author fuchengyong

* @version 1.0

*/public class excelworkbook

workbook = workbooktemp; }

public excelworkbook(string workbookname)

public string getworkbookname()

public void setworkbookname(string workbookname)

public hssfsheet getsheet()

/*** 用於stylutils的所需要的workbook必須項所做的處理

* @return

*/public static hssfworkbook getworkbook()

public static void setworkbook(hssfworkbook workbook)

/*** @param excelname

*/public void writerfilestream(string excelname) catch (filenotfoundexception e) catch (ioexception e) finally

} catch (ioexception e)

} }}

2. excel row工具類

/**

* excel row工具類

* @author fuchengyong

* @version 1.0

*/public class excelsheetrow

public static hssfsheet sheet = null;

/*** 設定當前sheet名字

*/private static string sheetname = null;

private static hssfrow row = null;

/*** 建立當前標題行

* @param sheet

* @return

*/public static hssfrow createcurrsheettitle(excelworkbook work)

/*** 建立當前excel記錄內容

* @param sheet

* @param i

* @return

*/public static hssfrow createcurrsheetrecord(excelworkbook work,int i)

public static string getsheetname()

public static void setsheetname(string sheetname)

}

3.  excel cell工具類

/**

* excel cell工具類

* @author fuchengyong

* @version 1.0

*/public class excelsheetcell }

/*** 用於生成excel當前記錄內容,標題除外

* @param sheet [當前工作表單]

* @param beanlist [當前資料列表,i=object]

* @param style [當前單元格風格]

*/public static void createcurrrowrecord(excelsheetrow sheetrow,excelworkbook work,list beanlist,hssfcellstyle style)

} }/**

* 需要以陣列的方式提供當前每條記錄

* 通過陣列自動判斷有多少列,生成當前行

*/private static void createexcelcell(hssfrow row, object obj,hssfcellstyle style)

} catch (nullpointerexception e)

}} catch (exception ex)

}}

4. excel style風格工具類

/**

* excel style風格工具類

* @author fuchengyong

* @version 1.0

*/public class excelcellstyleutils

/*** 超連結樣式

* @return hssfcellstyle

*/private static hssfcellstyle linkstyle(hssfworkbook work)

/**s

* 單元格樣式

* @return hssfcellstyle

*/private static hssfcellstyle namestyle(hssfworkbook work)

/*** 時間樣式

* @return hssfcellstyle

*/private static hssfcellstyle datastyle(hssfworkbook work)

/*** 標題樣式

* @return hssfcellstyle

*/private static hssfcellstyle titlestyle(hssfworkbook work)

}

5. 建立excel工廠類

/**

* 建立excel工具類

* @author fuchengyong

* */

public class excelutilfactory

excelrequest = request;

excelresponse = response;

return instance; }

public static void outputexcel(string excelname, list list, string firstrowvalue)

private static string getexcelrealpath(string excelname)

excelname = realpath+ "\\" + excelname+".xls";

return excelname;

} private static void downloadfile(string strfilename)

// 取得檔案的絕對路徑

file excelfile = getexceldownloadpath(strfilename);

putresponsestream(strfilename, excelfile);

} catch (ioexception e) }

private static file getexceldownloadpath(string excelname)

//用傳入引數的判斷

private static boolean excelfilenotfund(string strfilename)

/***

* @param strfilename : 檔名稱

* @param excelname : 檔案的相對路徑或絕對路徑

* @throws unsupportedencodingexception

* @throws filenotfoundexception

* @throws ioexception

*/private static void putresponsestream(string strfilename, file excelname)

throws unsupportedencodingexception, filenotfoundexception,

ioexception }

public static void main(string args)

outputexcel("今天測試_factory", beanlist, exceltitle);

long endtime = system.currenttimemillis();

system.out.println("測試55000,總計"+(endtime-begintime)/1000+"秒,用時");

}}

poi匯出excel工具類

poi版本 org.apache.poi poi3.17 org.apache.poi poi ooxml 3.17 excel匯出工具類 author zsc datetime 2017年12月14日 下午8 01 32 建立工作簿 param sheetnames param headnames...

POI匯出Excel工具類 補充

在實際使用中,發現用xssfworkbook建立xlsx檔案,如果資料量比較大,很容易出現占用cpu過高,記憶體溢位的情況。查了相關資料後,才發現官方推薦處理大量資料使用sxssfworkbook 在poi3.8之後才有 下面貼下自己寫的 public static void sxssfoutput...

使用POI匯出Excel最全工具類

1 建立乙個excel 注意在設定單元格的先關資訊時一定要 cell2.setcellstyle style2 這種形式才能讓設定起作用 hssfworkbook workbook new hssfworkbook 建立工作薄物件,這裡也可以設定sheet的name hssfsheet sheet1...