您的位置:首页 > 其它

使用POI读取excel文件内容

2017-04-08 08:33 731 查看
package edu.sjtu.erplab.poi;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class ExcelReader {

    private
POIFSFileSystem fs;

    private
HSSFWorkbook wb;

    private
HSSFSheet sheet;

    private
HSSFRow row;

   

    public
String[] readExcelTitle(InputStream is) {

       
try {

           
fs = new POIFSFileSystem(is);

           
wb = new HSSFWorkbook(fs);

       
} catch (IOException e) {

           
e.printStackTrace();

       
}

       
sheet = wb.getSheetAt(0);

       
row = sheet.getRow(0);

       
// 标题总列数

       
int colNum = row.getPhysicalNumberOfCells();

       
System.out.println("colNum:" + colNum);

       
String[] title = new String[colNum];

       
for (int i = 0; i < colNum; i++) {

           
//title[i] = getStringCellValue(row.getCell((short) i));

           
title[i] = getCellFormatValue(row.getCell((short) i));

       
}

       
return title;

    }

   

    public Map
readExcelContent(InputStream is) {

       
Map content = new HashMap();

       
String str = "";

       
try {

           
fs = new POIFSFileSystem(is);

           
wb = new HSSFWorkbook(fs);

       
} catch (IOException e) {

           
e.printStackTrace();

       
}

       
sheet = wb.getSheetAt(0);

       
// 得到总行数

       
int rowNum = sheet.getLastRowNum();

       
row = sheet.getRow(0);

       
int colNum = row.getPhysicalNumberOfCells();

       
// 正文内容应该从第二行开始,第一行为表头的标题

       
for (int i = 1; i <= rowNum; i++) {

           
row = sheet.getRow(i);

           
int j = 0;

           
while (j < colNum) {

               
// 每个单元格的数据内容用"-"分割开,以后需要时用String类的replace()方法还原数据

               
// 也可以将每个单元格的数据设置到一个javabean的属性中,此时需要新建一个javabean

               
// str += getStringCellValue(row.getCell((short) j)).trim() +

               
// "-";

               
str += getCellFormatValue(row.getCell((short) j)).trim() +
"    ";

               
j++;

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: