要快速上手,我们还是通过阅读代码来学习,这样可以帮助大家建立一个更直观的概念和认识。
1、写入Excel及数据类型控制
程序描述:通过Java程序新建一个名为test.xls的文件,并在Excel的第一行第一列写一个字符串,在第一行第二列写一个数字,在第一行第三列写一个日期。
- package jxl.zhanhj;
- import java.io.File;
- import java.util.Date;
- import jxl.Workbook;
- import jxl.write.Label;
- import jxl.write.WritableSheet;
- import jxl.write.WritableWorkbook;
- import jxl.write.Number;
- import jxl.write.DateTime;
- public class CreateExcel {
- public static void main(String args[]) {
- try {
- // 打开文件
- WritableWorkbook book = Workbook.createWorkbook(new File(
- "test.xls"));
- // 生成名为“sheet1”的工作表,参数0表示这是第一页
- WritableSheet sheet = book.createSheet("sheet1", 0);
- // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),单元格内容为string
- Label label = new Label(0, 0, "string");
- // 将定义好的单元格添加到工作表中
- sheet.addCell(label);
- // 生成一个保存数字的单元格,单元格位置是第二列,第一行,单元格的内容为1234.5
- Number number = new Number(1, 0, 1234.5);
- sheet.addCell(number);
- // 生成一个保存日期的单元格,单元格位置是第三列,第一行,单元格的内容为当前日期
- DateTime dtime = new DateTime(2, 0, new Date());
- sheet.addCell(dtime);
- // 写入数据并关闭文件
- book.write();
- book.close();
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- }
几个重要对象解析:
1、WritableWorkbook:用于创建打开Excel文件
2、WritableSheet:用于创建Excel中的页签
3、Label:将单元格指定为文本型,并写入字符串
4、Number:将单元格指定为数字型,并可写入数字
5、DateTime:将单元格指定为日期型,并可写入日期
掌握这几个类及其方法后,我们便可以方便的向Excel进行写入操作了,更多对象请参见jxl api。
2、写入时单元格及数据的格式化
程序描述:在数据写入到单元格后,对数据进行格式化,包括字体大小、颜色等
- package jxl.zhanhj;
- import java.io.File;
- import java.util.Date;
- import jxl.CellType;
- import jxl.Workbook;
- import jxl.format.Border;
- import jxl.format.BorderLineStyle;
- import jxl.format.Colour;
- import jxl.format.VerticalAlignment;
- import jxl.format.Alignment;
- import jxl.write.DateFormat;
- 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.Number;
- import jxl.write.DateTime;
- import jxl.write.WriteException;
- public class CreateExcel {
- public static void main(String args[]) {
- try {
- // 打开文件
- WritableWorkbook book = Workbook
- .createWorkbook(new File("test.xls"));
- // 生成名为“sheet1”的工作表,参数0表示这是第一页
- WritableSheet sheet = book.createSheet("sheet1", 0);
- // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),单元格内容为string
- Label label = new Label(0, 0, "string",
- getDataCellFormat(CellType.LABEL));
- // 将定义好的单元格添加到工作表中
- sheet.addCell(label);
- // 生成一个保存数字的单元格,单元格位置是第二列,第一行,单元格的内容为1234.5
- Number number = new Number(1, 0, 1234.5,
- getDataCellFormat(CellType.NUMBER));
- sheet.addCell(number);
- // 生成一个保存日期的单元格,单元格位置是第三列,第一行,单元格的内容为当前日期
- DateTime dtime = new DateTime(2, 0, new Date(),
- getDataCellFormat(CellType.DATE));
- sheet.addCell(dtime);
- // 写入数据并关闭文件
- book.write();
- book.close();
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- public static WritableCellFormat getDataCellFormat(CellType type) {
- WritableCellFormat wcf = null;
- try {
- // 字体样式
- if (type == CellType.NUMBER || type == CellType.NUMBER_FORMULA) {// 数字
- NumberFormat nf = new NumberFormat("#.00");
- wcf = new WritableCellFormat(nf);
- } else if (type == CellType.DATE) {// 日期
- DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");
- wcf = new WritableCellFormat(df);
- } else {
- WritableFont wf = new WritableFont(WritableFont.TIMES, 10,
- WritableFont.NO_BOLD, false);
- // 字体颜色
- wf.setColour(Colour.RED);
- wcf = new WritableCellFormat(wf);
- }
- // 对齐方式
- wcf.setAlignment(Alignment.CENTRE);
- wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
- // 设置上边框
- wcf.setBorder(Border.TOP, BorderLineStyle.THIN);
- // 设置下边框
- wcf.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
- // 设置左边框
- wcf.setBorder(Border.LEFT, BorderLineStyle.THIN);
- // 设置右边框
- wcf.setBorder(Border.RIGHT, BorderLineStyle.THIN);
- // 设置背景色
- wcf.setBackground(Colour.YELLOW);
- // 自动换行
- wcf.setWrap(true);
- } catch (WriteException e) {
- e.printStackTrace();
- }
- return wcf;
- }
- }
参考地址:http://blog.csdn.net/aking21alinjuju/article/details/5996110
2、Java读取Excel文件中的数据
参考地址:http://blog.csdn.net/aking21alinjuju/article/details/5990424
3、Java修改Excel单元格的数据及格式
参考地址:http://blog.csdn.net/aking21alinjuju/article/details/6001153