彩票走势图

如何使用JExcel导出Excel文件

原创|其它|编辑:郝浩|2012-10-11 09:53:41.000|阅读 634 次

概述:JExcel是java导出Excel的一个开源工具包。有的时候需要将数据导到Excel文件中以便观看。本文介绍了如何使用JExcel导出Excel文件的具体做法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

JExcel是java导出Excel的一个开源工具包。有的时候需要将数据导到Excel文件中以便观看。

需要上网下载jxl.jar,下载地址://pclwef.cn/zh-CN/product/1148/download.aspx

核心代码如下:

package test;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.LabelCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.NumberFormats;
import jxl.write.WritableCell;
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;
public class TutorialMain {
/**
  * WritingSpreadSheet
  */
public void WritingSpreadSheet() {
  try {
   //创建一个WorkBook,即一个Excel文件,文件目录为param0
   WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\\output.xls"));
   //创建一个Sheet,即表单,名字为param0;位置为param1
   WritableSheet sheet = workbook.createSheet("First Sheet Name", 0);
   sheet.setColumnView(0, 30); // 设置列的宽度
   sheet.setColumnView(1, 30); // 设置列的宽度
      sheet.setColumnView(2, 30); // 设置列的宽度
      sheet.setRowView(6, 1000); // 设置行的高度
      sheet.setRowView(4, 1000); // 设置行的高度
   sheet.setRowView(5, 1000); // 设置行的高度
 
   //创建一个Label,x坐标param0,y坐标param1,名字为param2
   Label label = new Label(0, 2, "A label record");
   //将该Label
   sheet.addCell(label);
   //创建一个Number,x坐标param0,y坐标param1,数值为param2
   Number number = new Number(3, 4, 3.1459);
   sheet.addCell(number);
   /**
    * 格式化信息
    */
   // Create a cell format for Arial 10 point font
   WritableFont arial10font = new WritableFont(WritableFont.ARIAL, 10);
   WritableCellFormat arial10format = new WritableCellFormat (arial10font);
   // Create the label, specifying content and format
   Label label2 = new Label(1,0, "Arial 10 point label", arial10format);
   sheet.addCell(label2);
   Label label3 = new Label(2, 0, "Another Arial 10 point label", arial10format);
   sheet.addCell(label3);
   // Create a cell format for Times 16, bold and italic
   WritableFont times16font = new WritableFont(WritableFont.TIMES, 16, WritableFont.BOLD, true);
   WritableCellFormat times16format = new WritableCellFormat (times16font);
   // Create the label, specifying content and format
   Label label4 = new Label(3,0, "Times 16 bold italic label", times16format);
   times16format.setBackground(jxl.format.Colour.BLUE);
   times16format.setAlignment(jxl.format.Alignment.CENTRE);
   sheet.addCell(label4);
 
   /**
    * 格式化数值
    */
   WritableCellFormat integerFormat = new WritableCellFormat (NumberFormats.INTEGER);
   Number number2 = new Number(0, 4, 3.141519, integerFormat);
   sheet.addCell(number2);
   WritableCellFormat floatFormat = new WritableCellFormat (NumberFormats.FLOAT);
   Number number3 = new Number(1, 4, 3.141519, floatFormat);
   sheet.addCell(number3);
   NumberFormat fivedps = new NumberFormat("#.#####");
   WritableCellFormat fivedpsFormat = new WritableCellFormat(fivedps);
   Number number4 = new Number(2, 4, 3.141519, fivedpsFormat);
   sheet.addCell(number4);
   WritableCellFormat fivedpsFontFormat = new WritableCellFormat (times16font, fivedps);
   Number number5 = new Number(3, 4, 3.141519, fivedpsFontFormat);
   sheet.addCell(number5);
   /**
    * Formatting Dates
    */
   // Get the current date and time from the Calendar object
   Date now = Calendar.getInstance().getTime();
   DateFormat customDateFormat = new DateFormat ("dd MM yyyy hh:mm:ss");
   WritableCellFormat dateFormat = new WritableCellFormat (customDateFormat);
   DateTime dateCell = new DateTime(0, 6, now, dateFormat);
   sheet.addCell(dateCell);
   /**
    * 合并单元格
    */
   WritableSheet sheet1 = workbook.createSheet("First Sheet", 1);
   sheet1.mergeCells(0, 0, 1, 1);
 
   // All sheets and cells added. Now write out the workbook
   workbook.write();
   workbook.close();
 
   System.out.println("创建成功..");
 
  } catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("创建失败..");
   e.printStackTrace();
  } catch (RowsExceededException e) {
   // sheet.addCell Exception
   System.out.println("创建失败..");
   e.printStackTrace();
  } catch (WriteException e) {
   System.out.println("创建失败..");
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}

/**
  *
  * @param filePath 文件路径
  * @param fileName 文件名
  */
public void ReadingSpreadSheets(String filePath,String fileName){
  try {
   Workbook workbook = Workbook.getWorkbook(new File(filePath + "\\" + fileName));
   Sheet sheet = workbook.getSheet(0);
   Cell a1 = sheet.getCell(0,0);
   Cell b2 = sheet.getCell(1,1);
   Cell c2 = sheet.getCell(2,1);
   String stringa1 = a1.getContents();
   String stringb2 = b2.getContents();
   String stringc2 = c2.getContents();
   double numberb2 = 0;
   Date datec2 = null;
   if (a1.getType() == CellType.LABEL)
   {
     LabelCell lc = (LabelCell) a1;
     stringa1 = lc.getString();
   }
   if (b2.getType() == CellType.NUMBER)
   {
     NumberCell nc = (NumberCell) b2;
     numberb2 = nc.getValue();
   }
   if (c2.getType() == CellType.DATE)
   {
     DateCell dc = (DateCell) c2;
     datec2 = dc.getDate();
   }
   // 其他处理
   // ...
   // 结束后关闭文件并释放内存
   workbook.close();
   System.out.println("读取成功..");
 
  } catch (BiffException e) {
   // TODO Auto-generated catch block
   System.out.println("读取失败..");
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   System.out.println("读取失败..");
   e.printStackTrace();
  }
}

public void copyWorkBook(String oldFilePath,String oldFileName,String newFilePath,String newFileName ){
  try {
   Workbook workbook = Workbook.getWorkbook(new File( oldFilePath + "\\" + oldFileName ));
   WritableWorkbook copy = Workbook.createWorkbook(new File( newFilePath +"\\" +newFileName ), workbook);
   //进行一些操作
   WritableSheet sheet = copy.getSheet(1);
   WritableCell cell0 = sheet.getWritableCell(1, 2);
   if (cell0.getType() == CellType.LABEL)
   {
     Label l0 = (Label) cell0;
     l0.setString("modified cell");
   }
 
   WritableSheet sheet2 = copy.getSheet(1);
   WritableCell cell = sheet2.getWritableCell(2, 4);
   NumberFormat fivedps = new NumberFormat("#.#####");
   WritableCellFormat cellFormat = new WritableCellFormat(fivedps);
   cell.setCellFormat(cellFormat);
  
   Label label = new Label(0, 2, "New label record");
   sheet2.addCell(label);
   Number number = new Number(3, 4, 3.1459);
   sheet2.addCell(number);
  
   // 所有的都完成,关闭资源
   workbook.close();
   copy.write();
   copy.close();
  } catch (BiffException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (RowsExceededException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (WriteException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

}

public static void main(String[] args){
  TutorialMain main = new TutorialMain();
  main.WritingSpreadSheet();
}

}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:kenchow126的专栏

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP