读取上传的excel文件

读取上传的excel文件
(1)前端

 

<form method="post" enctype="multipart/form-data" class="ts-form"
	onsubmit="$ts.submit('mmmm.data_import.submitDeptAction',{target:this})">
   <input class="form-input" type="text" id="orderID" name="orderID" style="display:none;width: 140px;" value="adsasd" />
	<div class="form-item">
	    <!-- 对应部门信息表 -->
		<div class="form-item-title">部门信息:</div>
		<div class="form-item-cont">
			<div ts-type="file-upload" data-max-number="1"
				data-files="model.files" data-name-field="deptAttachment"
				data-url-field="url" data-id-field="id"
				data-exists-name="existDeptAttachname" 
				data-max-upload="1">
				<input type="submit" value="上传" class="ts-button-red" ts-submit="true" />	
				<input type="submit" value="下载" class="ts-button-green" onclick="$ts.link('mmmm.data_import.fileDownloadAction',{name:'dept'});"/>
				</div>
		</div>
	</div>
</form>

(2)js

 

// 提交部门信息上传
		this.submitDeptAction = function(handler) {
			$ts.postFileForm("data_import/DeptBatch.upload", handler.target, function(result) {
				closeTab(handler.target);
				if(result.returntype != 1){
					showResultInfo(result.returntype);
					openLinkWithKey('数据导入列表','index','mmmm.data_import.index');
				}else if(result.returntype == 1 ){
					showResultInfo(result.returntype);
					openLinkWithKey('数据导入列表','index','mmmm.data_import.index');
				}
			});
		};

(3)后端获取文件流

 

//获得上传文件对象
		Object deptAttachmentObj = context.get("deptAttachment", Object.class);
		String deptAttachmentName = null;
		try {
		if (deptAttachmentObj instanceof MultipartFile) {//判断是上传文件类型
      	  MultipartFile  deptAttachment = (MultipartFile) deptAttachmentObj;
      	  //获得上传文件名
      	  deptAttachmentName = deptAttachment.getOriginalFilename() ;
      	  //获得上传文件的输入流
		  InputStream inputStream = deptAttachment.getInputStream();
		  //将上传的Excel转换成List
		  long exStart = System.currentTimeMillis();
		  List<Map<String, Object>> deptList = ExcelToDBUtil.sheetsToList(deptAttachmentName, inputStream);
		  if (deptList == null || deptList.isEmpty()) {
				throw new TeslaApplicationException("上传的表为空!");
			}

(4)ExcelToDBUtil工具类

 

package com.mmmm.pes.poi.utils;


import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
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.tesla.framework.core.TeslaApplicationException;


public class ExcelToDBUtil {




/**
 * 一个工作薄只有一个sheet
 * @param workName
 * @param fileInStream
 * @return
 */
	@SuppressWarnings({ "resource" })
	public static List<Map<String, String>> oneSheetToList(String workName,InputStream fileInStream) {


		// 获得数据所放容器
		List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
		if (!workName.endsWith(".xls") && !workName.endsWith(".xlsx")) {
			throw new RuntimeException("此文件不是excel类型");
		}
		
		Workbook workbook = null;
		try {
			// 获得excel的流
			if (workName.endsWith(".xls")) {
				// 获得一个.xls工作薄
				workbook = new HSSFWorkbook(fileInStream);
			} else {
				// 获得一个.xlsx工作薄
				workbook = new XSSFWorkbook(fileInStream);
			}
			// 此方法对应 一个工作薄只有一个sheet 
			Sheet sheet = workbook.getSheetAt(0);
			if (sheet == null) {
				throw new RuntimeException("指定sheet不存在");
			}
			// 获得表头
			Row rowHeader = sheet.getRow(0);
			if (rowHeader == null) {
				throw new RuntimeException("此Sheet无内容");
			}
			// 获取总列数
			int cells = rowHeader.getPhysicalNumberOfCells();
			// 获取数据总行数,这个是除去表头一行的总行数
			int num = sheet.getLastRowNum();
			for (int i = 1; i <= num; i++) {
				// 存储每一行的数据
				HashMap<String, String> data = new HashMap<String, String>();
				// 获得第i行对象
				Row row = sheet.getRow(i);
				for (int j = 0; j < cells; j++) {
					Cell cellValue = row.getCell(j);
					String stringlValue = "";
					String stringlkey = "key"+(j+1);
					switch (cellValue.getCellType()) {
					case HSSFCell.CELL_TYPE_STRING:
						stringlValue = cellValue.getStringCellValue();
						if (StringUtils.isEmpty(stringlValue)) {
							stringlValue ="";
						}
						break;
					case HSSFCell.CELL_TYPE_NUMERIC:
						stringlValue = String.valueOf(cellValue.getNumericCellValue());
						break;
					case HSSFCell.CELL_TYPE_FORMULA:
						cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
						stringlValue = String.valueOf(cellValue.getNumericCellValue());
						break;
					case HSSFCell.CELL_TYPE_BLANK:
						stringlValue ="";
						break;
					case HSSFCell.CELL_TYPE_BOOLEAN:
						break;
					case HSSFCell.CELL_TYPE_ERROR:
						break;
					default:
						break;
					}
					data.put(stringlkey, stringlValue);
				}


				dataList.add(data);
			}


		} catch (Exception e) {


			throw new RuntimeException(e.toString());
		} finally {
			// 关闭资源
			if (fileInStream != null) {
				try {
					fileInStream.close();
					fileInStream = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}


		return dataList;
	}
	
	
	@SuppressWarnings({ "resource" })
	public static List<Map<String, Object>> sheetsToList(String workName,InputStream fileInStream) throws IOException {


		// 获得数据所放容器
		List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
		if (!workName.endsWith(".xls") && !workName.endsWith(".xlsx")) {
			throw new TeslaApplicationException("上传文件类型错误");
		}
		
		Workbook workbook = null;
		Sheet sheet = null;
		try {
			// 获得excel的流
			if (workName.endsWith(".xls")) {
				// 获得一个.xls工作薄
				workbook = new HSSFWorkbook(fileInStream);
			} else {
				// 获得一个.xlsx工作薄
				workbook = new XSSFWorkbook(fileInStream);
			}
			// 此方法对应 一个工作薄有多个sheet 
			int numberOfSheets = workbook.getNumberOfSheets();
			for (int i = 0; i < numberOfSheets; i++) {
				
				sheet = workbook.getSheetAt(i);
				String sheetName = sheet.getSheetName();
				// 获得表头
				Row rowHeader = sheet.getRow(0);
				if (rowHeader != null) {
			
				// 获取总列数
				int cells = rowHeader.getPhysicalNumberOfCells();
				// 获取数据总行数,这个是除去表头一行的总行数
				int num = sheet.getLastRowNum();
				for (int j = 1; j <= num; j++) {
					// 存储每一行的数据
					HashMap<String, Object> data = new HashMap<String, Object>();
					// 获得第i行对象
					Row row = sheet.getRow(j);
					for (int v = 0; v < cells; v++) {
						Cell cellValue = row.getCell(v);
						String stringlValue = "";
						String stringlkey = "key"+(v+1);
						if(cellValue!=null){
							switch (cellValue.getCellType()) {
							case HSSFCell.CELL_TYPE_STRING:
								stringlValue = cellValue.getStringCellValue();
								if (StringUtils.isEmpty(stringlValue)) {
									stringlValue ="";
								}
								break;
							case HSSFCell.CELL_TYPE_NUMERIC:
								stringlValue = String.valueOf(cellValue.getNumericCellValue());
								break;
							case HSSFCell.CELL_TYPE_FORMULA:
								cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
								stringlValue = String.valueOf(cellValue.getNumericCellValue());
								break;
							case HSSFCell.CELL_TYPE_BLANK:
								stringlValue ="";
								break;
							case HSSFCell.CELL_TYPE_BOOLEAN:
								break;
							case HSSFCell.CELL_TYPE_ERROR:
								break;
							default:
								break;
							}
						}
						data.put(stringlkey, stringlValue);
						data.put("sheetName", sheetName);
					}
					
					dataList.add(data);
				    }
				  }
				}


		}  finally {
			// 关闭资源
			if (fileInStream != null) {
				try {
					fileInStream.close();
					fileInStream = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}


		return dataList;
	}
	/**
	 * 
	 * @param workName 文件的名称
	 * @param fileInStream 文件的输入流
	 * @param gainSheetName 是否获取sheetname 如果返回sheetName 在返回结果中其key值为sheetName
	 * @return
	 * @throws IOException 
	 */
	@SuppressWarnings({ "resource" })
	public static List<Map<String, Object>> workToListTempalte(String workName,InputStream fileInStream,Boolean gainSheetName) throws IOException {


		// 获得数据所放容器
		List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
		if (!workName.endsWith(".xls") && !workName.endsWith(".xlsx")) {
			throw new TeslaApplicationException("上传文件类型错误");
		}
		
		Workbook workbook = null;
		Sheet sheet = null;
		try {
			// 获得excel的流
			if (workName.endsWith(".xls")) {
				// 获得一个.xls工作薄
				workbook = new HSSFWorkbook(fileInStream);
			} else {
				// 获得一个.xlsx工作薄
				workbook = new XSSFWorkbook(fileInStream);
			}
			// 此方法对应 一个工作薄有多个sheet 
			int numberOfSheets = workbook.getNumberOfSheets();
			for (int i = 0; i < numberOfSheets; i++) {
				
				sheet = workbook.getSheetAt(i);
				String sheetName = sheet.getSheetName();
				//获得方案编号行
				Row rowPlan = sheet.getRow(0);
				if (rowPlan != null) {
				
				Cell cellPlanId = rowPlan.getCell(1);
				//方案编号
				String planId = cellPlanId.getStringCellValue();
				Cell cellPlanName = rowPlan.getCell(2);
				//方案名称
				String planName = cellPlanName.getStringCellValue();
				// 获得表头
				Row rowHeader = sheet.getRow(1);
				// 获取总列数
				int cells = rowHeader.getPhysicalNumberOfCells();
				// 获取数据总行数,这个是除去表头一行的总行数
				int num = sheet.getLastRowNum();
				for (int j = 1; j < num; j++) {
					// 存储每一行的数据
					HashMap<String, Object> data = new HashMap<String, Object>();
					// 获得第i行对象
					Row row = sheet.getRow(j+1);
					for (int v = 0; v < cells; v++) {
						Cell cellValue = row.getCell(v);
						String stringlValue = planId;
						String stringlkey = "key"+1;
						data.put(stringlkey, stringlValue);
						stringlValue = planName;
						stringlkey = "key"+2;
						data.put(stringlkey, stringlValue);
						stringlValue="";
						stringlkey = "key"+(v+3);
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringlValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringlValue)) {
								stringlValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringlValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringlValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringlValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringlkey, stringlValue);
						if (gainSheetName) {
							data.put("sheetName", sheetName);
						}
					}
					
					dataList.add(data);
				 }
				
			  }
				
				
			}


		} finally {
			// 关闭资源
			if (fileInStream != null) {
				try {
					fileInStream.close();
					fileInStream = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}


		return dataList;
	}
	/**
	 * 
	 * @param workName 文件的名称
	 * @param fileInStream 文件的输入流
	 * @param gainSheetName 是否获取sheetname 如果返回sheetName 在返回结果中其key值为sheetName
	 * @return
	 * @throws IOException 
	 */
	@SuppressWarnings({ "resource" })
	public static List<Map<String, Object>> workToListDetail(String workName,InputStream fileInStream,Boolean gainSheetName) throws IOException {
		
		// 获得数据所放容器
		List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();
		if (!workName.endsWith(".xls") && !workName.endsWith(".xlsx")) {
			throw new TeslaApplicationException("上传文件类型错误");
		}
		//key1:方案编号,key2:方案名称,key3:考核对象编号,key4:考核对象名称,		
		//key5:分组id,key6:分组名称,key7:指标编号_二级,key8:指标名称,key9:分数,key10:总分 ,key11:评分等级	
		Workbook workbook = null;
		Sheet sheet = null;
		try {
			// 获得excel的流
			if (workName.endsWith(".xls")) {
				// 获得一个.xls工作薄
				workbook = new HSSFWorkbook(fileInStream);
			} else {
				// 获得一个.xlsx工作薄
				workbook = new XSSFWorkbook(fileInStream);
			}
			// 此方法对应 一个sheet 				
				sheet = workbook.getSheetAt(0);
				String sheetName = sheet.getSheetName();
				//获得方案编号行
				Row rowPlan = sheet.getRow(0);
				Cell cellPlanId = rowPlan.getCell(1);
				//方案编号
				String planId = cellPlanId.getStringCellValue();
				Cell cellPlanName = rowPlan.getCell(2);
				//方案名称
				String planName = cellPlanName.getStringCellValue();				
				// 获得表头
				Row rowHeader = sheet.getRow(1);
				// 获取总列数
				int cells = rowHeader.getPhysicalNumberOfCells();
				// 获取数据总行数,这个是除去表头一行的总行数
				int num = sheet.getLastRowNum();
				//从第三行开始循环列出考核对象以及指标所对应的分值
				for (int j = 2; j <= num; j++) {	
					String stringValue = null;
					String stringkey = null;
					//根据序号判断是否还有需要的值
					Row rowXuHao = sheet.getRow(j);			
					 String idx="";
			            switch (rowXuHao.getCell(0).getCellType()){
			                case HSSFCell.CELL_TYPE_STRING:
			                    idx=rowXuHao.getCell(0).getStringCellValue();
			                    break;


			                case HSSFCell.CELL_TYPE_NUMERIC:
			                    idx=String.valueOf(rowXuHao.getCell(0).getNumericCellValue());
			                    break;
			            }
			            if(StringUtils.isEmpty(idx)){
			                break;
			            }
					//从第六列开始记录指标名称及ID,一共循环(cells-6)/2次,最后循环的列数是cells-3列
					for(int k = 5;k<cells-3;k++){
						// 存储每一行的数据
						HashMap<String, Object> data = new HashMap<String, Object>();
						//为每一条记录添加指标信息
						stringValue = planId;
						stringkey = "key"+1;
						data.put(stringkey, stringValue);
						stringValue = planName;
						stringkey = "key"+2;
						data.put(stringkey, stringValue);						
						// 获得第j行对象,从第二列开始记录数据
						Row rowj = sheet.getRow(j);					
						Cell cellValue = rowj.getCell(1);
						stringValue="";
						stringkey = "key"+3;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						cellValue = rowj.getCell(2);
						stringValue="";
						stringkey = "key"+4;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						cellValue = rowj.getCell(3);
						stringValue="";
						stringkey = "key"+5;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						
						cellValue = rowj.getCell(4);
						stringValue="";
						stringkey = "key"+6;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						
						//获得第二行的指标名称及ID
						Row rowk = sheet.getRow(1);
						//从第六列开始记录,一共10列
						if(k%2==0){
							k=k+1;
						}
						cellValue=rowk.getCell(k);
						stringValue="";
						stringkey = "key"+7;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						cellValue=rowk.getCell(k+1);
						stringValue="";
						stringkey = "key"+8;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						
						cellValue = rowj.getCell(k);
						stringValue="";
						stringkey = "key"+9;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						cellValue = rowj.getCell(cells-2);
						stringValue="";
						stringkey = "key"+10;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						cellValue = rowj.getCell(cells-1);
						stringValue="";
						stringkey = "key"+11;
						switch (cellValue.getCellType()) {
						case HSSFCell.CELL_TYPE_STRING:
							stringValue = cellValue.getStringCellValue();
							if (StringUtils.isEmpty(stringValue)) {
								stringValue ="";
							}
							break;
						case HSSFCell.CELL_TYPE_NUMERIC:
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_FORMULA:
							cellValue.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
							stringValue = String.valueOf(cellValue.getNumericCellValue());
							break;
						case HSSFCell.CELL_TYPE_BLANK:
							stringValue ="";
							break;
						case HSSFCell.CELL_TYPE_BOOLEAN:
							break;
						case HSSFCell.CELL_TYPE_ERROR:
							break;
						default:
							break;
						}
						data.put(stringkey, stringValue);
						if (gainSheetName){
							data.put("sheetName", sheetName);
						}
						dataList.add(data);	
					}																						
				}


		} finally {
			// 关闭资源
			if (fileInStream != null) {
				try {
					fileInStream.close();
					fileInStream = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return dataList;
	}
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值