Java读取Excel

Java读取xls, xlsx格式文件

maven配置:

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.15</version>
        </dependency>

  <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>

</dependency>



package com.thinkive.common.util;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.thinkive.common.function.gastatisics.bean.ThirdBean;


/**
 * @desc: 读取Excel数据, 
 * @author: changez@thinkive.com
 * @time: 2016年11月28日 下午4:03:59
 */
public class ReadExcel {

	private static Logger logger = Logger.getLogger(ReadExcel.class);
	
	public static void readExcelAndInstallDB(String filePath, int ignoreRows) throws Exception {
		
		Map<String, String> map = AnalyzeFileName.analyzeFileName(filePath);
		String fileType = map.get("fileType");
		InputStream stream = new FileInputStream(filePath);
		// 获取Excel工作薄对象
		Workbook wb = null;
		if ("xls".equals(fileType)) {
			wb = new HSSFWorkbook(stream);
		} else if ("xlsx".equals(fileType)) {
			wb = new XSSFWorkbook(stream);
		} else {
			stream.close();
			logger.error("Excel文件格式错误!");
			return ;
		}
		ignoreRows = ignoreRows < 0 ? 0 : ignoreRows;
		List<ThirdBean> beanList = new ArrayList<ThirdBean>();
		NumberFormat nf = NumberFormat.getInstance();
		nf.setGroupingUsed(false); // 不使用科学型计数方式
		try {
			// 获取Excel工作薄表对象,下标从0开始,该对象存储表中的每行对象
			// wb.getNumberOfSheets() 获取表的总数量
			for (int k = 0; k < wb.getNumberOfSheets(); k++) {
				Sheet sheet1 = wb.getSheetAt(k);
				for (int i = ignoreRows; i <= sheet1.getLastRowNum(); i++) {
					Row row = sheet1.getRow(i);//获取每行

					if (row != null) {
						String date = String.valueOf(nf.format(row.getCell(4).getNumericCellValue()));
						String time =  String.valueOf(nf.format(row.getCell(5).getNumericCellValue()));
						String dateTime = time.length() > 5 ? date+time : date+"0"+time;
						// 获取每行中不同下标的单元格,
						String str = row.getCell(10).getStringCellValue().trim();
						beanList.add(bean);
						
					}
				}
			}

			
		}finally {
			if(stream != null) {
				stream.close();
			}
		}
	}
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值