文档章节

Java读写excel

pricker
 pricker
发布于 2015/10/19 21:43
字数 680
阅读 116
收藏 7

      先下载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();     
                }  
                  
            }  

}

复制代码

© 著作权归作者所有

共有 人打赏支持
pricker
粉丝 7
博文 56
码字总数 33145
作品 0
渭南
Apache POI操作Excel导出JAVABEAN对象方法

Apache POI操作Excel导出方法说明 Apache的POI组件是Java操作Microsoft Office办公套件的强大API,其中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel,因为Word和PowerPoin...

JAVA枪手
2014/05/08
0
0
POI操作Excel常用方法总结 .

一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通...

勇敢的蜗牛_Z
2015/06/30
0
0
Java Swing的Excel电子表格控件JExcel下载及详细介绍

Java Swing的Excel电子表格控件JExcel JExcel提供了简单和有效的方法整合Excel到Java Swing应用程序中,可以很容易地使用完整的Java Excel API进行显示、创建、打印、读写或修改Excel 工作薄...

netkongjian
2014/05/10
0
3
Java Swing的Excel电子表格控件JExcel

JExcel提供了简单和有效的方法整合Excel到Java Swing应用程序中,可以很容易地使用完整的Java Excel API进行显示、创建、打印、读写或修改Excel 工作薄,还可以进行自定义多种单元格属性,包...

netkongjian
2014/06/06
0
0
使用 Apache POI 处理 Microsoft Office 文档

原文同步至:http://www.waylau.com/apache-poi-handle-microsoft-documents/ POI 概述 Apache POI 项目的使命是创造和维护 Java API 操纵各种格式的文件,其中包括基于 Office Open XML 标准...

waylau
2015/02/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
10分钟前
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
12分钟前
0
0
Nginix开启SSL支持HTTPS访问(自签名方法)

Nginix开启SSL支持HTTPS访问(自签名方法) 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器...

openthings
28分钟前
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部