Java向Excel文件中写数据

    转自aking21alinjuju:《Java开发有一说一》——向Excel文件中写数据

  接着上一节的内容,本节主要讲述如何通过Java程序向Excel文件中写数据,包括:1、数据类型的控制;2、单元格及数据的格式化。

要快速上手,我们还是通过阅读代码来学习,这样可以帮助大家建立一个更直观的概念和认识。

 

1、写入Excel及数据类型控制

     程序描述:通过Java程序新建一个名为test.xls的文件,并在Excel的第一行第一列写一个字符串,在第一行第二列写一个数字,在第一行第三列写一个日期。

[java]  view plain copy
  1. package jxl.zhanhj;  
  2. import java.io.File;  
  3. import java.util.Date;  
  4. import jxl.Workbook;  
  5. import jxl.write.Label;  
  6. import jxl.write.WritableSheet;  
  7. import jxl.write.WritableWorkbook;  
  8. import jxl.write.Number;  
  9. import jxl.write.DateTime;  
  10. public class CreateExcel {  
  11.     public static void main(String args[]) {  
  12.         try {  
  13.             // 打开文件  
  14.             WritableWorkbook book = Workbook.createWorkbook(new File(  
  15.                     "test.xls"));  
  16.             // 生成名为“sheet1”的工作表,参数0表示这是第一页  
  17.             WritableSheet sheet = book.createSheet("sheet1"0);  
  18.             // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),单元格内容为string  
  19.             Label label = new Label(00"string");  
  20.             // 将定义好的单元格添加到工作表中  
  21.             sheet.addCell(label);  
  22.             // 生成一个保存数字的单元格,单元格位置是第二列,第一行,单元格的内容为1234.5  
  23.             Number number = new Number(101234.5);  
  24.             sheet.addCell(number);  
  25.             // 生成一个保存日期的单元格,单元格位置是第三列,第一行,单元格的内容为当前日期  
  26.             DateTime dtime = new DateTime(20new Date());  
  27.             sheet.addCell(dtime);  
  28.             // 写入数据并关闭文件  
  29.             book.write();  
  30.             book.close();  
  31.         } catch (Exception e) {  
  32.             System.out.println(e);  
  33.         }  
  34.     }  
  35. }  
 

几个重要对象解析:

      1、WritableWorkbook:用于创建打开Excel文件

      2、WritableSheet:用于创建Excel中的页签

      3、Label:将单元格指定为文本型,并写入字符串

      4、Number:将单元格指定为数字型,并可写入数字

      5、DateTime:将单元格指定为日期型,并可写入日期

掌握这几个类及其方法后,我们便可以方便的向Excel进行写入操作了,更多对象请参见jxl api。

 

2、写入时单元格及数据的格式化

     程序描述:在数据写入到单元格后,对数据进行格式化,包括字体大小、颜色等

[java]  view plain copy
  1. package jxl.zhanhj;  
  2. import java.io.File;  
  3. import java.util.Date;  
  4. import jxl.CellType;  
  5. import jxl.Workbook;  
  6. import jxl.format.Border;  
  7. import jxl.format.BorderLineStyle;  
  8. import jxl.format.Colour;  
  9. import jxl.format.VerticalAlignment;  
  10. import jxl.format.Alignment;  
  11. import jxl.write.DateFormat;  
  12. import jxl.write.Label;  
  13. import jxl.write.NumberFormat;  
  14. import jxl.write.WritableCellFormat;  
  15. import jxl.write.WritableFont;  
  16. import jxl.write.WritableSheet;  
  17. import jxl.write.WritableWorkbook;  
  18. import jxl.write.Number;  
  19. import jxl.write.DateTime;  
  20. import jxl.write.WriteException;  
  21. public class CreateExcel {  
  22.     public static void main(String args[]) {  
  23.         try {  
  24.             // 打开文件  
  25.             WritableWorkbook book = Workbook  
  26.                     .createWorkbook(new File("test.xls"));  
  27.             // 生成名为“sheet1”的工作表,参数0表示这是第一页  
  28.             WritableSheet sheet = book.createSheet("sheet1"0);  
  29.             // 在Label对象的构造子中指名单元格位置是第一列第一行(0,0),单元格内容为string  
  30.             Label label = new Label(00"string",  
  31.                     getDataCellFormat(CellType.LABEL));  
  32.             // 将定义好的单元格添加到工作表中  
  33.             sheet.addCell(label);  
  34.             // 生成一个保存数字的单元格,单元格位置是第二列,第一行,单元格的内容为1234.5  
  35.             Number number = new Number(101234.5,  
  36.                     getDataCellFormat(CellType.NUMBER));  
  37.             sheet.addCell(number);  
  38.             // 生成一个保存日期的单元格,单元格位置是第三列,第一行,单元格的内容为当前日期  
  39.             DateTime dtime = new DateTime(20new Date(),  
  40.                     getDataCellFormat(CellType.DATE));  
  41.             sheet.addCell(dtime);  
  42.             // 写入数据并关闭文件  
  43.             book.write();  
  44.             book.close();  
  45.         } catch (Exception e) {  
  46.             System.out.println(e);  
  47.         }  
  48.     }  
  49.     public static WritableCellFormat getDataCellFormat(CellType type) {  
  50.         WritableCellFormat wcf = null;  
  51.         try {  
  52.             // 字体样式  
  53.             if (type == CellType.NUMBER || type == CellType.NUMBER_FORMULA) {// 数字  
  54.                 NumberFormat nf = new NumberFormat("#.00");  
  55.                 wcf = new WritableCellFormat(nf);  
  56.             } else if (type == CellType.DATE) {// 日期  
  57.                 DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");  
  58.                 wcf = new WritableCellFormat(df);  
  59.             } else {  
  60.                 WritableFont wf = new WritableFont(WritableFont.TIMES, 10,  
  61.                         WritableFont.NO_BOLD, false);  
  62.                 // 字体颜色  
  63.                 wf.setColour(Colour.RED);  
  64.                 wcf = new WritableCellFormat(wf);  
  65.             }  
  66.             // 对齐方式  
  67.             wcf.setAlignment(Alignment.CENTRE);  
  68.             wcf.setVerticalAlignment(VerticalAlignment.CENTRE);  
  69.             // 设置上边框  
  70.             wcf.setBorder(Border.TOP, BorderLineStyle.THIN);  
  71.             // 设置下边框  
  72.             wcf.setBorder(Border.BOTTOM, BorderLineStyle.THIN);  
  73.             // 设置左边框  
  74.             wcf.setBorder(Border.LEFT, BorderLineStyle.THIN);  
  75.             // 设置右边框  
  76.             wcf.setBorder(Border.RIGHT, BorderLineStyle.THIN);  
  77.             // 设置背景色  
  78.             wcf.setBackground(Colour.YELLOW);  
  79.             // 自动换行  
  80.             wcf.setWrap(true);  
  81.         } catch (WriteException e) {  
  82.             e.printStackTrace();  
  83.         }  
  84.         return wcf;  
  85.     }  
  86. }  
 

效果:

几个重要对象解析:

      1、WritableCellFormat:用于格式化单元格

      2、WritableFont:用于格式化字体

更多请参加jxl api。

到这里本节的讲解就结束了,下面我们可以总结出Excel的写入流程:

      1、用WritableWorkbook创建Excel文件

      2、用WritableSheet创建页签

      3、用Label、Number、DateTime等创建单元格内容

      4、在创建单元格内容时,我们可以给写一个格式化方法,对单元格内容进行格式化

      5、格式化主要包括2类:单元格格式化(WritableCellFormat)、值的格式化(WritableFont)

希望今天的内容能给大家对Excel写入带来帮助,下章将继续讲解Excel中的合并单元格的处理。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值