jexcel导出excel文件的demo(一)

2014-11-24 08:07:34 · 作者: · 浏览: 5

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

需要上网下载jxl.jar

核心代码如下:

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.14151