文档章节

POI读取excel文件,去除null值

韩不会
 韩不会
发布于 2017/07/07 13:54
字数 360
阅读 33
收藏 0

package com.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
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;
import org.springframework.util.StringUtils;


/**
 * 读取上传Excel数据
 * @author 
 *
 */
public class ReadPlansInfoExcel {  
    static XSSFRow row;
    @SuppressWarnings({ "deprecation" })
    public ArrayList<Data_excel> Read(String username,File file) throws Exception{
        XSSFWorkbook workbook = null;
        FileInputStream fis = null;
        ArrayList<Data_excel> arrlist=new ArrayList<Data_excel>();
        Date date = new Date();
        Timestamp timestamp  = new Timestamp(date.getTime());
        SimpleDateFormat sdf =  new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss " );
        SimpleDateFormat sd  =  new SimpleDateFormat( "yyyy-MM-dd" );
        try {
            fis = new FileInputStream(file);
            try {
                workbook = new XSSFWorkbook(fis);
                XSSFSheet spreadsheet = workbook.getSheetAt(0);
                Iterator < Row > rowIterator = spreadsheet.iterator();
                int totalRowNum = spreadsheet.getLastRowNum()+1;//得到总行数
                int totalListNum=spreadsheet.getRow(1).getPhysicalNumberOfCells();//得到总列数            
                Data_excel infos =null;
                for (int i = 0 ; i < totalRowNum ; i++) {
                    infos = new Data_excel();
                    row = (XSSFRow) rowIterator.next();
                    
                    //Iterator < Cell > cellIterator = row.cellIterator();
                    XSSFRow xssfRow = spreadsheet.getRow(i);
                    if(i > 0){//第一行不读取列,第一行是名称
                        for (int j = 0 ; j < totalListNum ; j++)  
                        {
//                            infos.setCreateTime(timestamp.toString());//创建时间
//                            infos.setCreateUser(username);//获取登陆状态的用户名
//                            infos.setLogTime(sd.format(timestamp));//插入时间
                            
                            XSSFCell cell = xssfRow.getCell(j);
                            if(cell ==null){
                                continue;
                            }
                            
                            //读取每一列的属性值,cell.getStringCellValue() 
                            //Cell cell = cellIterator.next();
                            String value = new String();
                            switch (cell.getCellType()) 
                            {
                            case Cell.CELL_TYPE_NUMERIC://获取整型的值
                                DecimalFormat df = new DecimalFormat("0");  
                                value = df.format(cell.getNumericCellValue());
                                break;
                            case Cell.CELL_TYPE_STRING: //字符串类型的值
                                value = cell.getStringCellValue().trim();
                                break;
                            case Cell.CELL_TYPE_BLANK: //空值
//                                value=null;
                                value="";
                                break;
                            case Cell.CELL_TYPE_BOOLEAN:
                                value= String.valueOf(cell.getBooleanCellValue()).trim();
                            }
                            if(j ==0){

                                infos.setCustomer(value);//(Integer.parseInt(value.trim()));// 生产顺序
                                
                            }else if(j==1){
                                infos.setCode(value);   //编码
                                System.out.println(infos);
                            }else if(j ==2 ){
                                infos.setFName(value); //设备编号
                            }else if(j==3){
                                infos.setFitemid(Integer.parseInt(value.trim()));//生产日期
                            }
                        }
//                        System.out.println("customer:"+infos.getCustomer());
                        boolean cus=infos.getCustomer()!=null && !infos.getCustomer().equals("");
                        boolean co =infos.getCode()!=null && !infos.getCode().equals("");
                        if(cus || co){
                            
                            arrlist.add(infos);
                        }
                            
                        
                        
                    }
                }
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        return arrlist;
    }
  
}  

© 著作权归作者所有

共有 人打赏支持
上一篇: 百度API
下一篇: 文件上传插件
韩不会
粉丝 1
博文 18
码字总数 6756
作品 0
张家口
程序员
私信 提问
java程序转换excel中科学记数法的数据为date类型

今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能。 但是导出后出现了一个问题,里边有一列存储时间的,存储的是long型毫...

涂宗勋
2016/05/12
43
0
java 解析excel,带合并单元的excel

首先,mavn导入jar包 <!-- 解析excel需要导入的 jar包 begin --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version> </dependency> <d......

岸芷汀兰
2015/06/03
0
0
poi 读取合并单元格问题

package test; import java.io.File; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import......

Mr_XK
2014/12/07
6.2K
1
自动化excl学习笔记

学习excl操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalFormat; import java.util.A......

知止内明
2017/11/21
0
0
JAVA用POI读取和创建2003和2007版本Excel完美示例

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalF......

java牛
2015/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
1
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0
大数据教程(11.5)仓库工具hive的实现机制

上一篇文章介绍了hadoop联邦集群的搭建过程。至此,hadoop的整个知识系统就差不多结束了。本篇博客开始,博主将分享数据仓库hive工具的原理以及使用。 一、Hive基本概念 (1)什么是Hive Hive...

em_aaron
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部