问题集录--java读写Excel

使用JXL.rar

1.找到JXL.jar包,导入程序。

查找依赖的网址:Maven仓库

2.读取Excel

public static void readExcel() throws BiffException, IOException{
   //创建一个list 用来存储读取的内容
    List list = new ArrayList();
    Workbook rwb = null;
    Cell cell = null;

    //创建输入流
    InputStream stream = new FileInputStream("d:\\testJXL.xls");

    //获取Excel文件对象
    rwb = Workbook.getWorkbook(stream);

    //获取文件的指定工作表 默认的第一个
    Sheet sheet = rwb.getSheet(0);  

    //行数(表头的目录不需要,从1开始)
    for(int i=0; i<sheet.getRows(); i++){

     //创建一个数组 用来存储每一列的值
     String[] str = new String[sheet.getColumns()];

     //列数
     for(int j=0; j<sheet.getColumns(); j++){

      //获取第i行,第j列的值
      cell = sheet.getCell(j,i);
      str[j] = cell.getContents();

     }
     //把刚获取的列存入list
     list.add(str);
    }
    for(int i=0;i<list.size();i++){
     String[] str = (String[])list.get(i);
     for(int j=0;j<str.length;j++){
      System.out.println(str[j]);
     }
    }
  }

3.写入Excel

public static void writeExcel(){
   String[] title = {"编号","产品名称","产品价格","产品数量","生产日期","产地","是否出口"};
         try {
             // 获得开始时间
             long start = System.currentTimeMillis();
             // 输出的excel的路径
             String filePath = "d:\\testJXL.xls";
              // 创建Excel工作薄
             WritableWorkbook wwb;
              // 新建立一个jxl文件,即在d盘下生成testJXL.xls
             OutputStream os = new FileOutputStream(filePath);
             wwb=Workbook.createWorkbook(os);
             // 添加第一个工作表并设置第一个Sheet的名字
             WritableSheet sheet = wwb.createSheet("产品清单", 0);
             Label label;
             for(int i=0;i<title.length;i++){
                 // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z
                 // 在Label对象的子对象中指明单元格的位置和内容
                 label = new Label(i,0,title[i]);
                 label = new Label(i, 0, title[i], getHeader());
                 // 将定义好的单元格添加到工作表中
                 sheet.addCell(label);
             }
             // 下面是填充数据
              /*
               * 保存数字到单元格,需要使用jxl.write.Number
               * 必须使用其完整路径,否则会出现错误
              * */
            // 填充产品编号
             jxl.write.Number number = new jxl.write.Number(0,1,20071001);
             sheet.addCell(number);
             // 填充产品名称
              label = new Label(1,1,"金鸽瓜子");
             sheet.addCell(label);
              /*
             * 定义对于显示金额的公共格式
               * jxl会自动实现四舍五入
              * 例如 2.456会被格式化为2.46,2.454会被格式化为2.45
              * */
             jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#,###.00");
             jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(nf);
              // 填充产品价格
             jxl.write.Number nb = new jxl.write.Number(2,1,200000.45,wcf);
             sheet.addCell(nb);
             // 填充产品数量
              jxl.write.Number numb = new jxl.write.Number(3,1,200);
             sheet.addCell(numb);
             /*
               * 定义显示日期的公共格式
             * 如:yyyy-MM-dd hh:mm
              * */
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             String newdate = sdf.format(new Date());
             // 填充出产日期
             label = new Label(4,1,newdate);
             sheet.addCell(label);
             // 填充产地
              label = new Label(5,1,"陕西西安");
             sheet.addCell(label);
             /*
              * 显示布尔值
              * */
             jxl.write.Boolean bool = new jxl.write.Boolean(6,1,true);
             sheet.addCell(bool);
              /*
              * 合并单元格
              * 通过writablesheet.mergeCells(int x,int y,int m,int n);来实现的
               * 表示将从第x+1列,y+1行到m+1列,n+1行合并
              *
              * */
             sheet.mergeCells(0,3,2,3);
             label = new Label(0,3,"合并了三个单元格");
             sheet.addCell(label);
             /*
               *
               * 定义公共字体格式
               * 通过获取一个字体的样式来作为模板
              * 首先通过web.getSheet(0)获得第一个sheet
              * 然后取得第一个sheet的第二列,第一行也就是"产品名称"的字体
             * */
             CellFormat cf = 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 = new Label(1,5,"字体",wc);
            sheet.addCell(label);   

             // 设置字体
            jxl.write.WritableFont wfont = new jxl.write.WritableFont(WritableFont.createFont("隶书"),20);
             WritableCellFormat font = new WritableCellFormat(wfont);
             label = new Label(2,6,"隶书",font);
              sheet.addCell(label);   

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

4.Excel样式

public static WritableCellFormat getHeader(){
   WritableFont font = new  WritableFont(WritableFont.TIMES, 10 ,WritableFont.BOLD);//定义字体
   try {
    font.setColour(Colour.BLUE);//蓝色字体
   } catch (WriteException e1) {
    // TODO 自动生成 catch 块
    e1.printStackTrace();
   }
   WritableCellFormat format = new  WritableCellFormat(font);
   try {
    format.setAlignment(jxl.format.Alignment.CENTRE);//左右居中
    format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//上下居中
    format.setBorder(Border.ALL,BorderLineStyle.THIN,Colour.BLACK);//黑色边框
    format.setBackground(Colour.YELLOW);//黄色背景
   } catch (WriteException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
   }
   return format;
  }
时间: 2024-10-10 11:14:52

问题集录--java读写Excel的相关文章

java读写excel文件

需求:利用Java读写excel文件 利用jexcelapi实现Java读写excel文件的功能 首先下载并安装jexcelapi JExcelApi v2.6.12 (1911kbytes) 解压后把jxl.jar文件添加到Java Build Path中 Java读取excel文件 Java写入excel文件

集算器读写EXCEL文件的代码示例

集算器可以方便地读写Excel文件,下面用一个例子进行说明:     描述:从data.xlsx读取订单数据和销售员列表,根据这两个sheet计算各部门的销售额,计算结果写入result.xlsx.     源Excel文件:data.xlsx有两个sheet,其中订单数据如下: 销售员列表如下:     集算器代码: A1-A2:从excel文件data.xlsx分别读取第1和第2个sheet,以序表的形式存储在A1.A2格,即订单数据和销售员列表. A3-A4:先将订单数据和销售员列表按照员

java读写Excel三种常用的技术

读写Excel三种常用的技术 1.POI 2.JXL 3.FASTEXCEL POI Apache POI是Apache软件基金会的开放源代码函数库,POI提供API给java程序对Microsoft Office格式档案读和写的功能.HSSF是Horrible SpreadSheet Format的缩写,及"讨厌的电子表格格式",通过HSSF,你可以使用纯的java代码来读取,写入,修改Excel文件. 其中它有以下的功能: HSSF-读写Mocrosoft Excel格式档案的功能

Java读写Excel之POI超入门(转)

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API.用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件.Apache POI 提供J

Java 读写 Excel

目前主要有两种常用的方式,jxl和POI.因为POI功能更加强大,面对大量数据时操作性能更加优于jxl,因此,在工作中一般使用POI来操作excel. POI是Apache下的开放源码函数库,POI提供了一系列的api来供java程序员对Microsoft Office格式的文档提供读写功能. 本片中就用 POI模式进行举例: 首先工具类,读写Excel的类,Excelutil1 代码如下,代码基本上都是从网上抄写的,只是调试了一下,让他能使用: package com.cailian.test

JExcel入门,JAVA读写Excel文件

(本人下的是jexcelapi_2_6_12.tar.gz,解压后将里面的jxl.jar复制到WEB-INF/lib目录下面即可) Java Excel API的jar包可以通过以下URL获得:(推荐) http://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.6/jexcelapi_2_6_6.zip/download (包括所有版本):http://sourceforge.net/projects/jexcelapi/file

去哪网实习总结:java读写excel表格(JavaWeb)

本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发... 不过还是比较认真的做了三个月,老师很认同我的工作态度和成果... 实习马上就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给大家. 同时打个广告:去哪网内审部招JavaWeb开发实习生,时间非常自由,每周一天.周六周日甚至都可以,时间充裕的小伙伴给我留言啊,挣个零花钱,还能长点经验....(保研的.想工作的大四狗最合适不过了...) 需哟的包(java操作excel包 jxl.jar):http://download.cs

Java读写Excel文件中数据的简便方法

Java开发项目中经常会碰到处理Excel文件中数据的情况,这里通过一个例子来看一下实现方法:从Excel文件orders.xls中读取订单信息,从中找出2010年1月1日(含)之后,并且SELLERID等于18的订单.找到的数据写入order_result.xls文件. Excel文件orders.xls的内容如下: ORDERID CLIENT SELLERID AMOUNT ORDERDATE 1 UJRNP 17 392 2008/11/2 15:28 2 SJCH 6 4802 200

Java读写excel

先下载JExcelapi的jar包. 读取的文件主要分两类:xls文件.xlsx文件.xls文件的相关操作用的是jxl.jar包,只要将这个包导入即可.xlsx文件的相关操作是利用apache的poi包. 一.xls文件(一个jar包:jxl.jar) 1)创建 package jexcel;      import java.io.*;    import jxl.*;    import jxl.write.*;       /**   * @author Ken   *   * To ch