當前位置:科普知識站>IT科技>

java|jxl

IT科技 閱讀(9.06K)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java jxl是什麼,讓我們一起了解一下?

jxl是jxl.jar通過java操作excel表格的工具類庫,能夠修飾單元格屬性,是由java語言開發而成的,在一個Java應用中,將一部分資料生成Excel格式,是與其他系統無縫連線的重要手段。

Jxl有哪些特徵?
1、支援Excel 95-2000的所有版本。
2、生成Excel 2000標準格式。 
3、支援字型、數字、日期操作。
4、能夠修飾單元格屬性。 
5、支援影象和圖表。 

java jxl

應該說以上功能已經能夠大致滿足我們的需要。最關鍵的是這套API是純Java的,並不依賴Windows系統,即使執行在Linux下,它同樣能夠正確的處理Excel檔案。另外需要說明的是,這套API對圖形和圖表的支援很有限,而且僅僅識別PNG格式。

具體應用:java Jxl如何操作Excel?

示例程式碼如下:

public String createExcel(String path,String filename,List list,TblKepuoaRecordDispatch dispatch) throws Exception{File file = new File(path+File.separator+filename+".xls" ); WritableWorkbook wbook = null;try {wbook = Workbook.createWorkbook(file); // 建立excel檔案String tmptitle = filename; // 標題WritableSheet wsheet = wbook.createSheet(filename, 0); // sheet名稱  // 設定excel標題WritableFont wfont = new WritableFont(WritableFont.createFont("宋體"), 16, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,Colour.BLACK);WritableCellFormat wcfFC = new WritableCellFormat(wfont);wcfFC.setAlignment(Alignment.CENTRE); // 設定對齊方式 wsheet.mergeCells(0, 0, 9, 0); // 合併單元格  wsheet.addCell(new Label(0, 0, tmptitle, wcfFC));wfont = new jxl.write.WritableFont(WritableFont.createFont("宋體"), 13,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,Colour.BLACK);wcfFC = new WritableCellFormat(wfont);wcfFC.setBorder(Border.NONE,BorderLineStyle.NONE); wcfFC.setAlignment(Alignment.CENTRE); // 設定對齊方式 wsheet.setColumnView(0, 6); // 設定列的寬度wsheet.setColumnView(1, 20); // 設定列的寬度wsheet.setColumnView(2, 25); // 設定列的寬度wsheet.setColumnView(3, 60); // 設定列的寬度wsheet.setColumnView(4, 10); // 設定列的寬度wsheet.setColumnView(5, 6); // 設定列的寬度wsheet.setColumnView(6, 6); // 設定列的寬度wsheet.setColumnView(7, 80); // 設定列的寬度wsheet.setColumnView(8, 20); // 設定列的寬度wsheet.setColumnView(9, 20); // 設定列的寬度  // 開始生成主體內容                wsheet.addCell(new Label(0, 1, "序號",wcfFC));wsheet.addCell(new Label(1, 1, "日期",wcfFC));wsheet.addCell(new Label(2, 1, "發文編號",wcfFC));wsheet.addCell(new Label(3, 1, "收文單位",wcfFC));wsheet.addCell(new Label(4, 1, "檔案型別",wcfFC));wsheet.addCell(new Label(5, 1, "件數",wcfFC));wsheet.addCell(new Label(6, 1, "附件",wcfFC));wsheet.addCell(new Label(7, 1, "檔案標題",wcfFC));wsheet.addCell(new Label(8, 1, "存檔編號",wcfFC));wsheet.addCell(new Label(9, 1, "簽字",wcfFC));wfont = new jxl.write.WritableFont(WritableFont.createFont("宋體"), 13,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,Colour.BLACK);wcfFC = new WritableCellFormat(wfont);wcfFC.setBorder(Border.NONE,BorderLineStyle.NONE); int j = 2;for (int i = 0; i < list.size(); i++) {dispatch=(TblKepuoaRecordDispatch) list.get(i); String uptime="";if(dispatch.getDispatchDate()!=null&&!"".equals(dispatch.getDispatchDate())){uptime=sdf2.format(dispatch.getDispatchDate());//時間格式化}wsheet.addCell(new Label(0, j, i+1+"",wcfFC));wsheet.addCell(new Label(1, j,uptime,wcfFC));wsheet.addCell(new Label(2, j,dispatch.getDispatchNo(),wcfFC));wsheet.addCell(new Label(3, j,dispatch.getDispatchOrgan(),wcfFC));/*if(dispatch!=null && dispatch.getDispatchOpreator()!=null && !"".equals(dispatch.getDispatchOpreator())){if(dispatch.getCode()!=null && !"".equals(dispatch.getCode())){wsheet.addCell(new Label(4, j,dispatch.getDispatchOpreator()+"-"+dispatch.getCode(),wcfFC));}else{wsheet.addCell(new Label(4, j,dispatch.getDispatchOpreator(),wcfFC));}}*/wsheet.addCell(new Label(4, j, dispatch.getDispatchType(),wcfFC));wsheet.addCell(new Label(5, j,String.valueOf(dispatch.getDispatchCount()),wcfFC));wsheet.addCell(new Label(6, j,String.valueOf(dispatch.getDispatchAccessoriescCount()),wcfFC));wsheet.addCell(new Label(7, j,dispatch.getDispatchName(),wcfFC));wsheet.addCell(new Label(8, j, dispatch.getArchiveNo(),wcfFC));j++;}} catch (IOException e) {// TODO Auto-generated catch blockLoggers.info("DispatchAction 中 createExcel 方法:"+e.getMessage());e.printStackTrace();}finally{if(wbook != null){wbook.write(); // 寫入檔案wbook.close();}}  // 主體內容生成結束        return filename+".xls";}