Java 使用JXL创建Excel

来源:互联网 发布:开放社会基金会 知乎 编辑:程序博客网 时间:2024/05/18 00:50
准备工作:
1.准备jxl的jar包,我用的是2.6版本:jxl-2.6.jar
2.建立项目

代码部分:



package org.yj.ExcelToXml;

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.CellFormat;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.biff.File;

public class CreateExcelDemo {
    publicstatic void main(String[] args) {
       //准备设置Excel工作表的标题
       String[]title = { "编号", "名称", "价格", "数量", "生产日期", "产地", "是否出口" };
      
       try {
         
          long start =System.currentTimeMillis();// 获得开始时间
          //Excel输出路径
          StringfilePath ="E:\\WorkTest\\ExcelAndXmlTransitionDemo\\source\\createExcel.xls";
         WritableWorkbook wwb;// 创建Excel工作簿

         //在filePaht目录下生成createExcel文件
          OutputStreamos = new FileOutputStream(filePath);
          wwb =Workbook.createWorkbook(os);

          //添加第一个工作表并设置第一个sheet的名字,0是工作表的索引
         WritableSheet sheet = wwb.createSheet("清单", 0);
         sheet.setColumnView(1, 20);//设置某列(0)的列宽(20)
         sheet.setRowView(2, 600);//设置某行(2)的行高(600/20)
         
          Labellabel;
          for (int i =0; i < title.length; i++) {
             //Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是z
             //在Label对象的子对象中指明单元格的位置和内容
             label = newLabel(i, 0, title[i]);
            sheet.addCell(label);// 将定义好的单元格添加到sheet表中
          }

          //下面是填充数据
         

          //填充产品编号
          Numbernumber = new Number(0, 1, 20071001);
         sheet.addCell(number);

          //填充产品名称
          label = newLabel(1, 1, "什么东西");
         sheet.addCell(label);

         
         jxl.write.NumberFormat nf = newjxl.write.NumberFormat("#.##");
         jxl.write.WritableCellFormat wcf = newjxl.write.WritableCellFormat(nf);
          //填充产品价格
         jxl.write.Number nb = new jxl.write.Number(2, 1, 2.446, wcf);
         sheet.addCell(nb);

          //填充产品数量
         jxl.write.Number numb = new jxl.write.Number(3, 1, 200);
         sheet.addCell(numb);

         
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          Stringnewdate = sdf.format(new Date());
          //填充出产日期
          label = newLabel(4, 1, newdate);
         sheet.addCell(label);

          //填充产地
          label = newLabel(5, 1, "阿里山");
         sheet.addCell(label);

          //显示布尔值
         jxl.write.Boolean bool = new jxl.write.Boolean(6, 1, true);
         sheet.addCell(bool);

         
         sheet.mergeCells(0, 3, 2, 3); // 1列4行~3列4行
          label = newLabel(0, 3, "合并单元格从A列4行~C列4行"); // 1列4行输出
         sheet.addCell(label);

         
          CellFormatcf = wwb.getSheet(0).getCell(1, 0).getCellFormat();
         WritableCellFormat wc = new WritableCellFormat();
          //设置居中
         wc.setAlignment(Alignment.CENTRE);
          //设置边框线
         wc.setBorder(Border.ALL, BorderLineStyle.THIN);
          //设置单元格的背景颜色
         wc.setBackground(jxl.format.Colour.RED);
          label = newLabel(1, 5, "字体", wc);
         sheet.addCell(label);

          //设置字体
         jxl.write.WritableFont wfont = null;
           wfont = new jxl.write.WritableFont(WritableFont.createFont("微软雅黑"),20);
         WritableCellFormat font = new WritableCellFormat(wfont);
          label = newLabel(2, 6, "微软雅黑", font);
         sheet.addCell(label);

//          FilefileImage = new File(System.getProperty("user.dir")+"/logo.png");
//         WritableImage image = new WritableImage(0, 0, 2, 3,fileImage);
// 从A1开始  跨2行3个单元格
// ws是Sheet
//         ws.addImage(image);

          //写入数据
         wwb.write();
          //关闭文件
         wwb.close();
          long end =System.currentTimeMillis();
         System.out.println("----完成该操作共用的时间是:" + (end - start) /1000);

       } catch(Exception e) {
         System.out.println("-------------异常啦--------------");
         e.printStackTrace();
       }
    }
}


相关jar包
http://u.115.com/file/f9376f5fec#
java解析Excel.rar

只提供30天~

原创粉丝点击