java解析excel表格,得到数据并封装到一个对象中

使用java读取excel表格,目前所知的主要有两种方式。一种是导入poi包,另一种是导入jxl包,这次我用的主要是jxl-2.6.12.jar。jar包可以去maven仓库下载。

导好java包好先新建封装数据的对象,里面是从excel表格中读取出来的数据

package utlis;

import java.util.Arrays;

//最后要传出的数据
public class ExcelObject {
	//分别为险种代码,日期,产品卖出价
	String[] FName=null;
	String[] Pdate=null;
	String[] Sbprice=null;
	
	public String[] getFName() {
		return FName;
	}
	public void setFName(String[] fName) {
		FName = fName;
	}
	public String[] getPdate() {
		return Pdate;
	}
	public void setPdate(String[] pdate) {
		Pdate = pdate;
	}
	public String[] getSbprice() {
		return Sbprice;
	}
	public void setSbprice(String[] sbprice) {
		Sbprice = sbprice;
	}
	@Override
	public String toString() {
		return "ExcelObject [FName=" + Arrays.toString(FName) + ", Pdate=" + Arrays.toString(Pdate) + ", Sbprice="
				+ Arrays.toString(Sbprice) + "]";
	}
}

主函数:

package utlis;

import java.io.IOException;
import jxl.read.biff.BiffException;

//修改版
//需要用到一个依赖包jxl
public class AnaExcel {
	public ExcelObject ResultList(String UPPRICEPath){
		Analysis ana=new Analysis();
		try {
			String[][] temp = ana.readExcelByPath(UPPRICEPath);
			ExcelObject excelObject = ana.receive(temp);
			return excelObject;
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

}


具体的解析流程:

package utlis;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.Date;

import jxl.CellType;
import jxl.DateCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

//xls的具体解析流程
public class Analysis {
	public static String[][] readExcelByPath(String fullPathFilename) throws BiffException, IOException{
		//得到输入流,通过输入xls文件在本地的路径
		InputStream in=new FileInputStream(new File(fullPathFilename));
		
		//得到xls的文件,先用workbook
		Workbook wb = Workbook.getWorkbook(in);
		// 得到页签的数量
		int sheets_num = wb.getNumberOfSheets();
		for(int index=0;index

你可能感兴趣的:(java)