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 change the template for this generated type comment go to 
 * Window>Preferences>Java>Code Generation>Code and Comments 
 */  public class CreateXLS {  
  
    public static void main(String[] args) {  
        try {  
            //open file.  
            WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"));  
              
            //create Sheet named "Sheet_1". 0 means this is 1st page.  
            WritableSheet sheet = book.createSheet("Sheet_1", 0);  
              
            //define cell column and row in Label Constructor, and cell content write "test".  
            //cell is 1st-Column,1st-Row. value is "test".  
            Label label = new Label(0, 0, "test");  
            //add defined cell above to sheet instance.              sheet.addCell(label);  
              
            //create cell using add numeric. WARN:necessarily use integrated package-path, otherwise will be throws path-error.  
            //cell is 2nd-Column, 1st-Row. value is 789.123.  
            jxl.write.Number number = new jxl.write.Number(1, 0, 789.123);  
            //add defined cell above to sheet instance.              sheet.addCell(number);  
              
            //add defined all cell above to case.              book.write();  
            //close file case.              book.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

2)读取

package jexcel;
import java.io.*;  
import jxl.*;  
  
/** 
 * @author Ken 
 * 
 * To change the template for this generated type comment go to 
 * Window>Preferences>Java>Code Generation>Code and Comments 
 */  public class ReadXLS {  
  
    public static void main(String[] args) {  
        try {  
            Workbook book = Workbook.getWorkbook(new File("e:/pos/rule.xls"));  
            //get a Sheet object.   
            Sheet sheet = book.getSheet(0);  
            //get 1st-Column,1st-Row content.  
           // Cell cell = sheet.getCell(1, 2); //先是列序号,然后是行序号,都是从0开始算起
            Cell[] cell=sheet.getColumn(0);            for(int i=0;i<cell.length;i++){
                String result = cell[i].getContents();  
                System.out.println(result);  
            }
            
            book.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
    }  
}

3)修改

package jexcel;

import java.io.*;  
import jxl.*;  
import jxl.write.*;  
  
/** 
 * @author Ken 
 * 
 * To change the template for this generated type comment go to 
 * Window>Preferences>Java>Code Generation>Code and Comments 
 */  public class UpdateXLS {  
  
    public static void main(String[] args) {  
        try {  
            //get file.  
            Workbook wb = Workbook.getWorkbook(new File("d:/Test.xls"));  
            //open a copy file(new file), then write content with same content with Test.xls.    
            WritableWorkbook book =  
                Workbook.createWorkbook(new File("d:/Test.xls"), wb);  
            //add a Sheet.  
            WritableSheet sheet = book.createSheet("Sheet_2", 1);  
            sheet.addCell(new Label(0, 0, "test2"));  
            book.write();  
            book.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

二、xlsx文件(五个jar包:poi-3.8-20120326.jar; poi-ooxml-3.8-20120326.jar; poi-ooxml-schemas-3.8-20120326.jar; xmlbeans-2.3.0.jar; dom4j-1.6.1.jar)

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.logging.Logger;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class xlsx {    public static void main(String[] args) {        // TODO Auto-generated method stub
        poiExcel("e:/pos/rules.xlsx");
    }    
    private static void poiExcel(String saveName){  
               try{  
                    String realPath =saveName;  
                    File fileDes = new File(realPath);  
                    InputStream str = new FileInputStream(fileDes);  
                    XSSFWorkbook xwb = new XSSFWorkbook(str);  //利用poi读取excel文件流  
                    XSSFSheet st = xwb.getSheetAt(0);  //读取sheet的第一个工作表  
                    int rows=st.getLastRowNum();//总行数  
                    int cols;//总列数  
                    //log.info("========行========"+rows);  
                    for(int i=0;i<rows;i++){  
                        XSSFRow row=st.getRow(i);//读取某一行数据  
                        if(row!=null){  
                            //获取行中所有列数据  
                            cols=row.getLastCellNum();  
                            //log.info("========行========"+rows+"=====列========"+cols);  
                            
                            
                          
                            for(int j=0;j<cols;j++){  
                                XSSFCell cell=row.getCell(j);  
                                if(cell==null){  
                                    System.out.print("   ");    
                                }else{  
                            //判断单元格的数据类型  
                                    switch (cell.getCellType()) {    
                                    case XSSFCell.CELL_TYPE_NUMERIC: // 数字    
                                        System.out.print(cell.getNumericCellValue() + "   ");    
                                        break;    
                                    case XSSFCell.CELL_TYPE_STRING: // 字符串    
                                        System.out.print(cell.getStringCellValue() + "   ");    
                                        break;    
                                    case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean    
                                        System.out.println(cell.getBooleanCellValue() + "   ");    
                                        break;    
                                    case XSSFCell.CELL_TYPE_FORMULA: // 公式    
                                        System.out.print(cell.getCellFormula() + "   ");    
                                        break;    
                                    case XSSFCell.CELL_TYPE_BLANK: // 空值    
                                        System.out.println("");    
                                        break;    
                                    case XSSFCell.CELL_TYPE_ERROR: // 故障    
                                        System.out.println("故障");    
                                        break;    
                                    default:    
                                        System.out.print("未知类型   ");    
                                        break;    
                                    }    
                                }  
                            }  
                            
                        }  
                    }  
                }catch(IOException e){  
                    e.printStackTrace();     
                }  
                  
            }  

}

时间: 2024-08-24 12:01:25

Java读写excel的相关文章

java读写excel文件

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

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(POI,支持xls和xlsx两种格式)

这应该是一个比较全的示例了,更加复杂的功能可以在此基础上扩展.此示例基于apache的POI类库,相关jar包就不列举了.这个类库很通用,网上很好找. 1.不包含单元格合并的写excel /** * excel导出到输出流 * 谁调用谁负责关闭输出流 * @param os 输出流 * @param excelExtName excel文件的扩展名,支持xls和xlsx,不带点号 * @param data * @throws IOException */ public static void

java读写excel之POI篇—002

poi创建excel文件 创建后缀为 .xls excel文件     @Test     public void testCreateWorkbook_xls() {         HSSFWorkbook hssfWorkbook = new HSSFWorkbook();         //添加Worksheet(不添加sheet时生成的xls文件打开时会报错)         HSSFSheet sheetOne = hssfWorkbook.createSheet();