JXL创建一个Excel有8中方法,如下图。
[img]http://www.kutoku.info/images/java/100721/jxl.png[/img]
这8种方法虽然参数不同,但有一个共同点,就是:必须以一个现有的Excel为模板创建一个新的Excel,这点可能和我们的认识不太一样,即Jxl不能凭空创建一个excel文件。

所以在具体的开发过程中,用到了JXL,一定会有一个地方去存放相应的模板,根据模板生成新的Excel,然后填充内容,保存。

给一个创建Excel的详细代码,附件是需要的Jar,即jxl.jar。

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
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 JxlOpExcel {

	public static void main(String[] args) {
		try {
			// 创建可写入的 Excel工作薄
			WritableWorkbook wb = Workbook.createWorkbook(new File("c:/test.xls"));
			// 创建Excel工作表
			WritableSheet ws = wb.createSheet("sheet1", 0);

			// 添加Label对象
			Label label1 = new Label(0, 0, "测试创建Excel");
			ws.addCell(label1);

			// 添加带有字型Formatting的对象
			WritableFont wf = new WritableFont(
					WritableFont.TIMES, 18, WritableFont.BOLD, true);
			WritableCellFormat wcfF = new WritableCellFormat(
					wf);
			Label labelCF = new Label(1, 0,
					"This is a Label Cell", wcfF);
			ws.addCell(labelCF);

			// 添加带有字体颜色Formatting的对象
			WritableFont wfc = new WritableFont(
					WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
					UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
			WritableCellFormat wcfFC = new WritableCellFormat(
					wfc);
			Label labelCFC = new Label(1, 0,
					"This is a Label Cell", wcfFC);
			ws.addCell(labelCFC);

			// 添加Number对象
			jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
			ws.addCell(labelN);

			// 添加带有formatting的 Number对象
			NumberFormat nf = new NumberFormat("#.##");
			WritableCellFormat wcfN = new WritableCellFormat(
					nf);
			jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926,
					wcfN);
			ws.addCell(labelNF);

			// 添加Boolean对象
			jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
			ws.addCell(labelB);

			// 添加DateTime对象
			DateTime labelDT = new DateTime(0, 3,
					new java.util.Date());
			ws.addCell(labelDT);

			// 添加带有formatting的DateFormat对象
			DateFormat df = new DateFormat(
					"dd MM yyyy hh:mm:ss");
			WritableCellFormat wcfDF = new WritableCellFormat(
					df);
			DateTime labelDTF = new DateTime(1, 3,
					new java.util.Date(), wcfDF);
			ws.addCell(labelDTF);

			wb.write(); // 写入Exel工作表
			wb.close(); // 关闭Excel工作薄对象

		} catch (IOException e) {
			e.printStackTrace();
		} catch (RowsExceededException e) {
			e.printStackTrace();
		} catch (WriteException e) {
			e.printStackTrace();
		}
	}
}