原創|其它|編輯:郝浩|2012-10-11 09:50:07.000|閱讀 344 次
概述:有時候我們會需要做Excel的報表,下面這個例子詳細的給出了讀寫及定義樣式的方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
有時候我們會需要做Excel的報表,下面這個例子詳細的給出了讀寫及定義樣式的方法。
(JExcel下載)
代碼如下:
package com.test; import java.io.File; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.Colour; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; /** * * CopyRight (C) www.blogjava.net/ilovezmh All rights reserved.<p> * * WuHan Inpoint Information Technology Development,Inc.<p> * * Author zhu<p> * * @version 1.0 2007-2-6 * * <p>Base on : JDK1.5<p> * */ public class JExcelSample { /** * 寫Excel文件 * */ public void writeExc(File filename){ WritableWorkbook wwb = null; try { wwb = Workbook.createWorkbook(filename); } catch (Exception e){ e.printStackTrace(); } //創建Excel工作表 WritableSheet ws = wwb.createSheet("通訊錄", 0);//創建sheet try { ws.mergeCells(0, 0, 2, 1);//合并單元格(左列,左行,右列,右行)從第1行第1列到第2行第3列 Label header = new Label(0, 0, "通訊錄(191026班)", getHeader()); ws.addCell(header);//寫入頭 Label l = new Label(0, 2, "姓名", getTitle());//第3行 ws.addCell(l); l = new Label(1, 2, "電話", getTitle()); ws.addCell(l); l = new Label(2, 2, "地址", getTitle()); ws.addCell(l); l = new Label(0, 3, "小祝", getNormolCell());//第4行 ws.addCell(l); l = new Label(1, 3, "1314***0974", getNormolCell()); ws.addCell(l); l = new Label(2, 3, "武漢武昌", getNormolCell()); ws.addCell(l); l = new Label(0, 4, "小施", getNormolCell());//第5行 ws.addCell(l); l = new Label(1, 4, "1347***5057", getNormolCell()); ws.addCell(l); l = new Label(2, 4, "武漢武昌", getNormolCell()); ws.addCell(l); ws.setColumnView(0,20);//設置列寬 ws.setColumnView(1,20); ws.setColumnView(2,40); ws.setRowView(0,400);//設置行高 ws.setRowView(1,400); ws.setRowView(2,500); ws.setRowView(3,500); ws.setRowView(4,500); } catch (RowsExceededException e1) { e1.printStackTrace(); } catch (WriteException e1) { e1.printStackTrace(); } //輸出流 try { wwb.write(); } catch (IOException ex) { // TODO 自動生成 catch 塊 ex.printStackTrace(); } //關閉流 try { wwb.close(); } catch (WriteException ex) { // TODO 自動生成 catch 塊 ex.printStackTrace(); } catch (IOException ex) { // TODO 自動生成 catch 塊 ex.printStackTrace(); } //outStream.close(); System.out.println("寫入成功!\n"); } public void readExc(File filename) throws BiffException, IOException{ Workbook wb = Workbook.getWorkbook(filename); Sheet s = wb.getSheet(0);//第1個sheet Cell c = null; int row = s.getRows();//總行數 int col = s.getColumns();//總列數 for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ c = s.getCell(j,i); System.out.print(c.getContents()+" "); } System.out.println(); } } /** * 設置頭的樣式 * @return */ public static WritableCellFormat getHeader(){ WritableFont font = new WritableFont(WritableFont.TIMES, 24 ,WritableFont.BOLD);//定義字體 try { font.setColour(Colour.BLUE);//藍色字體 } catch (WriteException e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } WritableCellFormat format = new WritableCellFormat(font); try { format.setAlignment(jxl.format.Alignment.CENTRE);//左右居中 format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//上下居中 format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK);//黑色邊框 format.setBackground(Colour.YELLOW);//黃色背景 } catch (WriteException e) { // TODO 自動生成 catch 塊 e.printStackTrace(); } return format; } /** * 設置標題樣式 * @return */ public static WritableCellFormat getTitle(){ WritableFont font = new WritableFont(WritableFont.TIMES, 14); try { font.setColour(Colour.BLUE);//藍色字體 } catch (WriteException e1) { // TODO 自動生成 catch 塊 e1.printStackTrace(); } WritableCellFormat format = new WritableCellFormat(font); try { format.setAlignment(jxl.format.Alignment.CENTRE); format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK); } catch (WriteException e) { // TODO 自動生成 catch 塊 e.printStackTrace(); } return format; } /** * 設置其他單元格樣式 * @return */ public static WritableCellFormat getNormolCell(){//12號字體,上下左右居中,帶黑色邊框 WritableFont font = new WritableFont(WritableFont.TIMES, 12); WritableCellFormat format = new WritableCellFormat(font); try { format.setAlignment(jxl.format.Alignment.CENTRE); format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK); } catch (WriteException e) { // TODO 自動生成 catch 塊 e.printStackTrace(); } return format; } public static void main(String[] args) throws IOException, BiffException{ JExcelSample js = new JExcelSample(); File f = new File("D:\\address.xls"); f.createNewFile(); js.writeExc(f); js.readExc(f); } }
生成的Excel表格如下:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:zhuminghua的博客