Java將數(shù)據(jù)導出Excel_第1頁
Java將數(shù)據(jù)導出Excel_第2頁
Java將數(shù)據(jù)導出Excel_第3頁
Java將數(shù)據(jù)導出Excel_第4頁
Java將數(shù)據(jù)導出Excel_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、使用java將數(shù)據(jù)導出EXCEL1.效果圖V 燔 ht tp: /I o c alho e tL枚藏夾| : | userLi st. j sp導出EXCEL序號姓名|性期1 張三1地址北京市創(chuàng)建時間2013-01-15|2 李四廠上海市2013-01-06導出EXCEL序號姓查性刖強匹 創(chuàng)建時間1E長三|1北京市2013-01-12庠四jz - |上箱幣|201用L-詢t-lJdwxla*.2yi*心贏QTMsl導出EXCEL-虬:51頂,獎上劉s.w 張三1 北京市如3-01-152十叫2 一勺【20B-01-06用戶性1 IDils南窖H或-Mkrosjafr E雙色|戶n播無E布E混

2、室裾天聞韌王ESEatg切1歸看初Arisi- M -必 了=- l7拓 /nEifi J U _ |3-底M Mil孝學I|時-虬,械行日緯:里元相- SBlfiK.- HC-ISA * 想式再敗眼 氣E5 一頊網(wǎng)技P1F6A日CEFGH1JKLMN二口用戶信息:y.弛址印腱時同J%-:rpi北洲20131-15J .IE |=:|列13|1 頃 |E1011415161919胡I I :?123al24F茜2?2fl1293: iri * 而田己戶蛔 可2. Struts2配置及代碼配置/pages/user_page/userList.jsinputStreamattachment;fi

3、lename=$fileNamaction 代碼private UserService userService;private InputStream inputStream;private String fileName;private List users;/注:下面屬性提供get*、set*方法調(diào)用Excel(自己定義,下面有)類方法public String outUsersToExcel()Excel excel=new Excel();/要顯示表格列名excel.setColumns(new String序號,姓名,”性0”,地址”, 創(chuàng)建時間);/生成EXCEL文件名稱excel

4、.setFileName(用戶信息.xls);/文件表的頭部標題excel.setTitle(用戶信息”);/將要導出的用戶信息List userList=userService.getAllUsers();List list=excel.getExcelContentList();int i=1;for(User user:userList)String row=i + ”,user.getUserName()+,user.getSex()+,user.getAddress(),TimeUtil.getStrByDate(user.getCreateTime();i+;list.add(ro

5、w);設置序號if(i=Integer.parseInt(excel.getPerSheetRows()+1) i=1;excel.setExcelContentList(list);/導出 EXCELthis . inputStream=excel.outExcel(excel,this .inputStream, this .request);this.fileName=excel.getExcelFileName(excel.getFileName(); return outToExcel;3. Excel屬性類(自己定義,為了簡化代碼)public class Excel public

6、 static Logger logger=Logger.getLogger(Excel.class);/Excel構造方法(初始化信息)SuppressWarnings(unchecked)public Excel()propertiesTool=new=PropertiesTool(perties;excelContentList=new ArrayList();private private private private private private private privatetitle;/文件內(nèi)容標題filePath; /生成EXCEL的路徑folderName; /存放EXC

7、EL文件的文件夾名稱 perSheetRows;/每張表顯示的數(shù)量PropertiesTool propertiesTool;/系統(tǒng)屬性文件StringStringStringStringString columns; / /EXCEL信息列的名稱String condition; /查詢的條件String fileName; /文件名稱SuppressWarnings(unchecked)private List excelContentList; /導出數(shù)據(jù)(格式化后的String數(shù) 形式的集合) 注:上面Excel中的屬性自己要提供get* set*方法/導出 Excelpublic I

8、nputStream outExcel(Excel excel,InputStream inputStream,HttpServletRequest request)/ OutToExcelS面有導出ExcelM體方法的實現(xiàn),下面具體會結束 OutToExcel outToExcel=new OutToExcel();/得到系統(tǒng)真實路徑String realPath =request.getSession().getServletContext().getRealPath/);/生成EXCEL的路徑excel.setFilePath(realPath+excel.getFolderName()

9、;try /調(diào)用方法轉化為EXCEL表outToExcel.outExcel(excel);下載時提示的文件名。fileName= new String(excel.getFileName();/輸出 EXCELinputStream =new java.io.FileInputStream(filePath +/+fileName); catch (Exception e) logger.error(fileName+”導出出現(xiàn)錯誤”,e); return inputstream;/獲取導出Excel的文件名稱public String getExcelFileName(String fil

10、eName)try fileName=newString(fileName.getBytes(gb2 312”), iso8859-1); catch (Exception e) logger.error(要導出的EXCEL文件名稱出現(xiàn)錯誤”,e); return fileName;4.導出Excel具體實現(xiàn)的方法導出Excel的具體實現(xiàn)方法1 (主要處理數(shù)據(jù)轉換)public void outExcel(Excel excel) throws Exception String filepath=excel.getFilePath(); File path = new File(filepat

11、h); if(!path.exists()path.mkdir();filepath = filepath +/+ excel.getFileName() ;/ 倉U建excelWritableWorkbook wwb;OutputStream os = null;WritableSheet sheet = null;os = new FileOutputStream(filepath);/新建立一個JXL文件(一個JXL文件可包含多個工作表) wwb = Workbook.createWorkbook(os);/每張工作表顯示內(nèi)容的條數(shù)int sheetRows =Integer.parse

12、lnt(excel.getPerSheetRows(); int i=0,j=0,beginNum=0,endNum=0;String title1;/循環(huán)讀取數(shù)據(jù),每次只讀取perSheetRows行 for(beginNum=0,i=sheetRows;iexcel.getExcelContentList().size() title1=excel.getTitle(); else title1=excel.getTitle()+String.va2ueOf (j);if (endNumexcel.getExcelContentList().size() endNum=excel.getE

13、xcelContentList().size();List tempData=new ArrayList();if (beginNum=excel.getExcelContentList().size() for (int k=beginNum;kendNum ;k+)/將集合轉換成數(shù)組String aa =(String)excel.getExcelContentList().get(k);tempData.add(aa);/創(chuàng)建一個工作表sheet = wwb.createSheet(title1, j);/將內(nèi)容輸出到工作表中outExcelSheet(tempData, excel,

14、os, wwb, sheet); beginNum=i;/寫入數(shù)據(jù)wwb.write();/關閉文件wwb.close();導出Excel的具體實現(xiàn)方法2(主要是設置樣式)public void outExcelSheet(List list,Excel excel,OutputStream os,WritableWorkbook wwb,WritableSheet sheet)throws Exception /label(x,y,z)代表 單元格的第x+1列,第y+1行,內(nèi)容z Label label = null;/1.設置該工作表的標題為2 0號字體,居中,放在第一行WritableF

15、ont wfont = newWritableFont(WritableFont.createFont(黑體”),18);WritableCellFormat font = new WritableCellFormat(wfont); font.setAlignment(Alignment.CENTRE);sheet.mergeCells(0, 0, excel.getColumns()length - 1, 0);label = new Label(0, 0, excel.getTitle(), font); sheet.addCell(label);/2 .讀取查詢條件,放在第二行shee

16、t.mergeCells(0, 1, excel.getColumns()length - 1, 1); label = new Label(0, 1, excel.getCondition();sheet.addCell(label);/3.讀取列頭放在第三行WritableFont wfont2 = new WritableFont(WritableFont.createFont (宋體”),12); WritableCellFormat font2 = new WritableCellFormat(wfont2); for (int i = 0; i excel.getColumns() length; i+) label = new Label(i, 2, excel.getColumns()i, font2); sheet.add

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論