java excel 的POI导入

Excel导入:

使用apache 的POI进行excel的导入,

1.    pom.xml中添加依赖

<dependency>
   <
groupId>commons-fileupload</groupId>
   <
artifactId>commons-fileupload</artifactId>
   <
version>1.3.2</version>
</
dependency>
<
dependency>
   <
groupId>org.apache.poi</groupId>
   <
artifactId>poi-ooxml</artifactId>
   <
version>3.17</version>
</
dependency>

 

2.    获取当前xlsx文件的整个book对象

//文件存放所在文件夹
private static final String pathDir="E:\\要导入的病例\\";

/**
* @Description: 根据文件的位置,获取当前excel的book对象
* @param path 文件名
* @return org.apache.poi.xssf.usermodel.XSSFWorkbook
* @author zk
* @date 2018-04-09 19:22
*/
public static XSSFWorkbook getBook(String path) throws Exception{
    OPCPackage pkg = OPCPackage.open(pathDir+path);
    XSSFWorkbook hWorkbook = new XSSFWorkbook(pkg);
    return hWorkbook;
}

 

获取当前的表格对象,获取当前的第一页的表格对象

XSSFWorkbook book = ExcelUtil.getBook(s);

XSSFSheet sheet = book.getSheetAt(1);

3.    其他的就没有什么了.我写了一点工具类,贡献给大家了

 package com.dataimport.util;

import org.apache.poi.openxml4j.opc.OPCPackage;
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;

/**
 * @Description: Excel 工具类
 * @author zk
 * @date 2018-04-03 10:19
 */
public class ExcelUtil {

    //文件存放所在文件夹
    private static final String pathDir="E:\\要导入的病例\\";


    /**
    * @Description: 根据文件的位置,获取当前excel的book对象
    * @param path 文件名
    * @return org.apache.poi.xssf.usermodel.XSSFWorkbook
    * @author zk
    * @date 2018-04-09 19:22
    */
    public static XSSFWorkbook getBook(String path) throws Exception{
        OPCPackage pkg = OPCPackage.open(pathDir+path);
        XSSFWorkbook hWorkbook = new XSSFWorkbook(pkg);
        return hWorkbook;
    }

    /**
     * Description: 根据文件位置,获取第index个表格的对象
     * @date 2018年3月23日
     * @author zk
     */
    public static  XSSFSheet getSheet(String path,int index) throws Exception{
       /* File tempFile = new File(pathDir+path);
        InputStream in = new FileInputStream(tempFile);
        XSSFWorkbook hWorkbook = new XSSFWorkbook(in);
        */
       //使用新的方法获取流
        OPCPackage pkg = OPCPackage.open(pathDir+path);
        XSSFWorkbook hWorkbook = new XSSFWorkbook(pkg);
        XSSFSheet hSheet = hWorkbook.getSheetAt(index);
        return hSheet;
    }


    /**
     * Description: 是否是一个空的表格,没有内容
     * @param cell 一个表格对象
     * @date 2018年3月29日
     * @author zk
     */
    public static boolean isNotNullBlock(XSSFCell cell){
        if(cell!=null){
            if(!cell.toString().equals("")){
                return true;
            }
        }
        return false;
    }


    /**
    * @Description: 获取一行的某一列的数据,为空就返回null
    * @param row 行对象, index  第几列
    * @return java.lang.String
    * @author zk
    * @date 2018-04-10 11:15
    */
    public static String getCell(XSSFRow row,int index){
        if(row==null){
            return null;
        }
        XSSFCell cell1 = row.getCell(index);
        String tmp=null;
        if(ExcelUtil.isNotNullBlock(cell1)){
            tmp=cell1.toString().trim();
        }
        return tmp;
    }

}

 

Excel 中的一个表格如果储存的是

1,

2.

3.

这种换行的内容,从java中读取出来,默认是加上了\n 换行符的.

cell0.toString().replace("\n","")     就直接去掉了换行,变成一行了,打印出来是1,2.3.

如果不进行任何操作读取出来进行打印就是:

1,

2.

3.

 

如果是使用了excel的自动换行功能,在java中读取出来不会进行换行,还是一行的哦.

 

还有其中涉及到的mybatis批量插入,批量修改等等,不一而足.以后再写

 

今天终于把手头的活干完了,暂时告一段落了.以后就是慢慢改这些东西了.

 

Java Framework,欢迎各位前来交流java相关
QQ群:965125360

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值