쉽 고 좋아요.-JAVA 는 POI 로 엑셀 을 해석 합 니 다.

6002 단어 자바excelxlsxxls
더 읽 기
 POI 를 사용 하 는 것 이 현재 매우 많다 고 믿 습 니 다.저 는 아주 간단 하고 편리 하 며 통용 되 는 POI 분석 도구 류 를 제공 합 니 다.코드 는 마지막 으로 예제 코드 가 있 습 니 다.본문 에 따라 직접 사용 할 수 있다.
 
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
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;

/**
 * 
 * Title: ExcelReader
* Description: xls,xlsx
* Copyright @ 2012~2016 xiaour.github.com .All rights reserved.
* @author * @createDate 2016 8 23 * @version v1.0 */ public class ExcelReader { private POIFSFileSystem fs; private HSSFWorkbook wb; private HSSFSheet sheet; private HSSFRow row; private static Logger logger = LogManager.getLogger(ExcelReader.class); private String fileFullPath; private int sheetNo; public ExcelReader(String fileFullPath, int sheetNo) { super(); this.fileFullPath = fileFullPath; this.sheetNo = sheetNo; } /** * Excel * @param InputStream * @param sheetNo sheet * @return Map Map */ public List> readExcel() { logger.info(" xls..."); sheetNo--;// 1 0 InputStream is = null; try { is = new FileInputStream(fileFullPath); } catch (FileNotFoundException e1) { logger.error(e1); } Map dataMap = null; List> dataList= new ArrayList<>(); String value = ""; try { fs = new POIFSFileSystem(is); wb = new HSSFWorkbook(fs); } catch (IOException e) { logger.error(e); } sheet = wb.getSheetAt(sheetNo); row = sheet.getRow(0); // int colNum = row.getPhysicalNumberOfCells(); String[] keyArray = new String[colNum]; for (int i = 0; i < colNum; i++) { keyArray[i] = getCellFormatValue(row.getCell((short) i)); } int rowNum = sheet.getLastRowNum(); // , for (int i = 2; i <= rowNum; i++) { dataMap= new HashMap<>(); row = sheet.getRow(i); if(row!=null){ int j = 0; while (j < colNum) { // Map if(row.getCell((short) j)!=null){ value = getCellFormatValue(row.getCell((short) j)).trim(); dataMap.put(keyArray[j],value); } j++; } value = ""; dataList.add(dataMap); } } logger.info(" xls ..."); try { if(is!=null) is.close(); } catch (IOException e) { logger.error(e.toString()); } return dataList; } /** * HSSFCell * @param cell * @return */ private String getCellFormatValue(HSSFCell cell) { String cellvalue = ""; if (cell != null) { // Cell Type switch (cell.getCellType()) { // Cell Type NUMERIC case HSSFCell.CELL_TYPE_NUMERIC: case HSSFCell.CELL_TYPE_FORMULA: { // cell Date if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); cellvalue = sdf.format(date); } // else { // Cell DecimalFormat df = new DecimalFormat("0"); String dfStr = df.format(cell.getNumericCellValue()); cellvalue = dfStr; } break; } // Cell Type STRIN case HSSFCell.CELL_TYPE_STRING: // Cell cellvalue = cell.getRichStringCellValue().getString(); break; // Cell default: cellvalue = " "; } } else { cellvalue = ""; } return cellvalue; } public static void main(String[] args) { List> dataList; // Excel ExcelReader excelReader = new ExcelReader("D:\\okcoin-2016-08-3XZS.xls",1); dataList = excelReader.readExcel(); for(Map theMap:dataList){ System.out.println(theMap); } } } jar ,

좋은 웹페이지 즐겨찾기