现在的位置: 首页 > 综合 > 正文

JXL生成对应的Excel文件(报表统计)

2014年01月26日 ⁄ 综合 ⁄ 共 2945字 ⁄ 字号 评论关闭

最近在做报表的功能,因为对这个功能并不熟悉,只要先在网上查询相应的资料,然后自己写了几个小例子,在这里要使用一个jxl.jar的包。

一、生成一个名为"test.xls"的Excel文件:

public class CreateExcel {
  public static void main(String args[]) {
      try {
          // 打开文件
          WritableWorkbook book = Workbook.createWorkbook(new File("E:/Excel/test.xls"));
          // 生成名为“第一页”的工作表,参数0表示这是第一页
          WritableSheet sheet = book.createSheet("第一页", 0);
          sheet.setRowView(0,600);
          /*
           * 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
           * 以及单元格内容为test
           */
          Label label = new Label(0, 0, "test");
          sheet.addCell(label);
          /*
           * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为789.123
           */
          Number number = new Number(1, 0, 555.12541);
          sheet.addCell(number);
          /*
           * 生成一个Boolean类型的单元格
           */
          Boolean bool=new Boolean(2,0,true);
          sheet.addCell(bool);
          /*
           * 生成一个Date类型的单元格
           */
          DateTime dt=new DateTime(3,0,new Date());
          sheet.addCell(dt);
          /*
           * 生成有一定格式的cell
           */
          WritableFont font1=new WritableFont(WritableFont.TIMES,8,WritableFont.BOLD);
          WritableCellFormat format1=new WritableCellFormat(font1);
          format1.setAlignment(jxl.format.Alignment.CENTRE);
          format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
          Label label2=new Label(4,0,"123",format1);
          sheet.addCell(label2);
          
          // 写入数据并关闭文件
          book.write();
          book.close();

      } catch (Exception e) {
          System.out.println(e);
      }
  }
}

二、读取对应的Excel的内容:

public class ReadAllExcel {
    public static void main(String[] args) throws Exception{
        Workbook book = Workbook.getWorkbook(new File("E:/Excel/test.xls"));
        // 获得第一个工作表对象
              Sheet sheet = book.getSheet(0);
                // 得到第一列第一行的单元格
                int columnum = sheet.getColumns();// 得到列数
                int rownum = sheet.getRows();// 得到行数
        
                for (int i = 0; i < rownum; i++)// 循环进行读写
                {
                    for (int j = 0; j < columnum; j++) {
                        Cell cell1 = sheet.getCell(j, i);
                        String result = cell1.getContents();
                        System.out.print(result);
                        System.out.print("\t");
                    }
                    System.out.println();
                }
         book.close();
      
    }
}

三、更改对应的Excel的内容:

public class UpdateExcel {
    public static void main(String args[]) {
        try {
            // Excel获得文件
            Workbook wb = Workbook.getWorkbook(new File("E:/Excel/test.xls"));
            // 打开一个文件的副本,并且指定数据写回到原文件
            WritableWorkbook book = Workbook.createWorkbook(new File("E:/Excel/test.xls"),
                    wb);
            // 添加一个工作表
            WritableSheet sheet = book.createSheet("第二页", 1);
            sheet.mergeCells(0,0,5,0);
            sheet.addCell(new Label(0, 0, "第二页的测试数据"));
            book.write();
            book.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

这些只是一些简单的基础例子,如果想对做出一些有一定效果的Excel可以参考下面的文档:

http://www.andykhan.com/jexcelapi/download.html

抱歉!评论已关闭.