67,513
社区成员
发帖
与我相关
我的任务
分享
public List<AuditOpinion> resolverXLS(HSSFSheet hssfSheet){
//获取一个表格中的总行数 第一行得到的值是0 所以这里要+1
int allRow = hssfSheet.getLastRowNum()+1;
//获取一个表格中的所有列数 由于一些行 是合并单元格的,所以可能出现只有一行的情况
// 还有可能一行是空的,所以取所有行数里面最大的行数
int allCell = 0;
List<AuditOpinion> aduitList=new ArrayList<AuditOpinion>();
AuditOpinion ao=null;
for(int i=0;i<allRow;i++){
if(hssfSheet.getRow(i)!=null&&hssfSheet.getRow(i).getLastCellNum()>allCell){
allCell = hssfSheet.getRow(i).getLastCellNum()+1;
}
}
System.out.println("行数:"+allRow+",列数:"+allCell);
//定义一个与 表格里面行数和列数 一样的字符串数组 用于储存解析好的数据
String[] data = new String[allCell];
//循环行
for(int n=3;n<allRow;n++){
//获取一行中的所有的数据 如果这一行是空 就不在执行里面的代码。
HSSFRow hssfRow = hssfSheet.getRow(n);
//不报错/*System.out.println(hssfSheet.getRow(0).getCell(1));*/
//报错/* System.out.println(hssfSheet.getRow(1).getCell(1));*/
if(hssfRow==null){
continue;
}
//循环这一行中的数据 如果这一行中的某一列是空的 就用“ ”代替
for(int m=3;m<allCell;m++){
if(hssfRow.getCell(m)==null){
ao=new AuditOpinion();
}
else {
//把表格中的数据存放到数组中
data[m]=hssfRow.getCell(m).toString();
System.out.println(data[m]+"!!!!"+data.length);
ao=new AuditOpinion(data);
}
}
aduitList.add(ao);
}
return aduitList;
}
行数:95,列数:26
990006-201511-00000001!!!!26
26changnull
null1111
Exception in thread "main" java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.valueOf(Unknown Source)
at com.medto.entity.AuditOpinion.<init>(AuditOpinion.java:283)
at com.medto.util.FileOperation.resolverXLS(FileOperation.java:109)
at com.medto.util.FileOperation.readFile(FileOperation.java:44)
at com.medto.util.FileOperationTest.main(FileOperationTest.java:16)
package com.medto.entity;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*意见审核书 createby ywy 2017/2/18*/
public class AuditOpinion {
//id
private int OPINION_ID;
//流水号
private String BUSINESS_NUM;
//单据号
private long DOCUMENT_NUM;
//意见书编码
private String OPINION_ENCODING;
//项目编码
private String PROJECT_ENCODING;
//项目名称
private String PROJECT_NAME;
//医保内金额
private Double MEDICAL_INFOSUM;
//扣除金额
private Double CROSS_CLAIM;
//规则名称
private String RULE_NAME;
//扣除原因
private String DEDUCT_REASON;
//还款原因
private String REPAY_REASON;
//医生姓名
private String DOCTOR_NAME;
//科室编码
private String ROOM_ENCODING;
//科室名称
private String ROOM_NAME;
//入院日期
private Date IN_DATE;
//住院
private Date OUT_DATE;
//费用日期
private String FEES_DATE;
//数量
private int NUMBERS;
//住院号
private long HOSPITAL_NUM;
//就医方式
private String TREATMENT_WAY;
//结算日期
private Date SETTLE_DATE;
//个人编号
private long PATIENT_ID;
//参保人姓名
private String PATIENT_NAME;
//版本号
private int VERSION;
//反馈
private String FEEDBACK;
@Override
public String toString() {
return "AuditOpinion [OPINION_ID=" + OPINION_ID + ", BUSINESS_NUM="
+ BUSINESS_NUM + ", DOCUMENT_NUM=" + DOCUMENT_NUM
+ ", OPINION_ENCODING=" + OPINION_ENCODING
+ ", PROJECT_ENCODING=" + PROJECT_ENCODING + ", PROJECT_NAME="
+ PROJECT_NAME + ", MEDICAL_INFOSUM=" + MEDICAL_INFOSUM
+ ", CROSS_CLAIM=" + CROSS_CLAIM + ", RULE_NAME=" + RULE_NAME
+ ", DEDUCT_REASON=" + DEDUCT_REASON + ", REPAY_REASON="
+ REPAY_REASON + ", DOCTOR_NAME=" + DOCTOR_NAME
+ ", ROOM_ENCODING=" + ROOM_ENCODING + ", ROOM_NAME="
+ ROOM_NAME + ", IN_DATE=" + IN_DATE + ", OUT_DATE=" + OUT_DATE
+ ", FEES_DATE=" + FEES_DATE + ", NUMBERS=" + NUMBERS
+ ", HOSPITAL_NUM=" + HOSPITAL_NUM + ", TREATMENT_WAY="
+ TREATMENT_WAY + ", SETTLE_DATE=" + SETTLE_DATE
+ ", PATIENT_ID=" + PATIENT_ID + ", PATIENT_NAME="
+ PATIENT_NAME + ", VERSION=" + VERSION + ", FEEDBACK="
+ FEEDBACK + "]";
}
public int getOPINION_ID() {
return OPINION_ID;
}
public void setOPINION_ID(int oPINION_ID) {
OPINION_ID = oPINION_ID;
}
public String getBUSINESS_NUM() {
return BUSINESS_NUM;
}
public void setBUSINESS_NUM(String bUSINESS_NUM) {
BUSINESS_NUM = bUSINESS_NUM;
}
public long getDOCUMENT_NUM() {
return DOCUMENT_NUM;
}
public void setDOCUMENT_NUM(long dOCUMENT_NUM) {
DOCUMENT_NUM = dOCUMENT_NUM;
}
public String getOPINION_ENCODING() {
return OPINION_ENCODING;
}
public void setOPINION_ENCODING(String oPINION_ENCODING) {
OPINION_ENCODING = oPINION_ENCODING;
}
public String getPROJECT_ENCODING() {
return PROJECT_ENCODING;
}
public void setPROJECT_ENCODING(String pROJECT_ENCODING) {
PROJECT_ENCODING = pROJECT_ENCODING;
}
public String getPROJECT_NAME() {
return PROJECT_NAME;
}
public void setPROJECT_NAME(String pROJECT_NAME) {
PROJECT_NAME = pROJECT_NAME;
}
public Double getMEDICAL_INFOSUM() {
return MEDICAL_INFOSUM;
}
public void setMEDICAL_INFOSUM(Double mEDICAL_INFOSUM) {
MEDICAL_INFOSUM = mEDICAL_INFOSUM;
}
public Double getCROSS_CLAIM() {
return CROSS_CLAIM;
}
public void setCROSS_CLAIM(Double cROSS_CLAIM) {
CROSS_CLAIM = cROSS_CLAIM;
}
public String getRULE_NAME() {
return RULE_NAME;
}
public void setRULE_NAME(String rULE_NAME) {
RULE_NAME = rULE_NAME;
}
public String getDEDUCT_REASON() {
return DEDUCT_REASON;
}
public void setDEDUCT_REASON(String dEDUCT_REASON) {
DEDUCT_REASON = dEDUCT_REASON;
}
public String getREPAY_REASON() {
return REPAY_REASON;
}
public void setREPAY_REASON(String rEPAY_REASON) {
REPAY_REASON = rEPAY_REASON;
}
public String getDOCTOR_NAME() {
return DOCTOR_NAME;
}
public void setDOCTOR_NAME(String dOCTOR_NAME) {
DOCTOR_NAME = dOCTOR_NAME;
}
public String getROOM_ENCODING() {
return ROOM_ENCODING;
}
public void setROOM_ENCODING(String rOOM_ENCODING) {
ROOM_ENCODING = rOOM_ENCODING;
}
public String getROOM_NAME() {
return ROOM_NAME;
}
public void setROOM_NAME(String rOOM_NAME) {
ROOM_NAME = rOOM_NAME;
}
public Date getIN_DATE() {
return IN_DATE;
}
public void setIN_DATE(Date iN_DATE) {
IN_DATE = iN_DATE;
}
public Date getOUT_DATE() {
return OUT_DATE;
}
public void setOUT_DATE(Date oUT_DATE) {
OUT_DATE = oUT_DATE;
}
public String getFEES_DATE() {
return FEES_DATE;
}
public void setFEES_DATE(String fEES_DATE) {
FEES_DATE = fEES_DATE;
}
public int getNUMBERS() {
return NUMBERS;
}
public void setNUMBERS(int nUMBERS) {
NUMBERS = nUMBERS;
}
public long getHOSPITAL_NUM() {
return HOSPITAL_NUM;
}
public void setHOSPITAL_NUM(long hOSPITAL_NUM) {
HOSPITAL_NUM = hOSPITAL_NUM;
}
public String getTREATMENT_WAY() {
return TREATMENT_WAY;
}
public void setTREATMENT_WAY(String tREATMENT_WAY) {
TREATMENT_WAY = tREATMENT_WAY;
}
public Date getSETTLE_DATE() {
return SETTLE_DATE;
}
public void setSETTLE_DATE(Date sETTLE_DATE) {
SETTLE_DATE = sETTLE_DATE;
}
public long getPATIENT_ID() {
return PATIENT_ID;
}
public void setPATIENT_ID(long pATIENT_ID) {
PATIENT_ID = pATIENT_ID;
}
public String getPATIENT_NAME() {
return PATIENT_NAME;
}
public void setPATIENT_NAME(String pATIENT_NAME) {
PATIENT_NAME = pATIENT_NAME;
}
public int getVERSION() {
return VERSION;
}
public void setVERSION(int vERSION) {
VERSION = vERSION;
}
public String getFEEDBACK() {
return FEEDBACK;
}
public void setFEEDBACK(String fEEDBACK) {
FEEDBACK = fEEDBACK;
}
public AuditOpinion(int oPINION_ID, String bUSINESS_NUM, long dOCUMENT_NUM,
String oPINION_ENCODING, String pROJECT_ENCODING,
String pROJECT_NAME, Double mEDICAL_INFOSUM, Double cROSS_CLAIM,
String rULE_NAME, String dEDUCT_REASON, String rEPAY_REASON,
String dOCTOR_NAME, String rOOM_ENCODING, String rOOM_NAME,
Date iN_DATE, Date oUT_DATE, String fEES_DATE, int nUMBERS,
long hOSPITAL_NUM, String tREATMENT_WAY, Date sETTLE_DATE,
long pATIENT_ID, String pATIENT_NAME, int vERSION, String fEEDBACK) {
super();
OPINION_ID = oPINION_ID;
BUSINESS_NUM = bUSINESS_NUM;
DOCUMENT_NUM = dOCUMENT_NUM;
OPINION_ENCODING = oPINION_ENCODING;
PROJECT_ENCODING = pROJECT_ENCODING;
PROJECT_NAME = pROJECT_NAME;
MEDICAL_INFOSUM = mEDICAL_INFOSUM;
CROSS_CLAIM = cROSS_CLAIM;
RULE_NAME = rULE_NAME;
DEDUCT_REASON = dEDUCT_REASON;
REPAY_REASON = rEPAY_REASON;
DOCTOR_NAME = dOCTOR_NAME;
ROOM_ENCODING = rOOM_ENCODING;
ROOM_NAME = rOOM_NAME;
IN_DATE = iN_DATE;
OUT_DATE = oUT_DATE;
FEES_DATE = fEES_DATE;
NUMBERS = nUMBERS;
HOSPITAL_NUM = hOSPITAL_NUM;
TREATMENT_WAY = tREATMENT_WAY;
SETTLE_DATE = sETTLE_DATE;
PATIENT_ID = pATIENT_ID;
PATIENT_NAME = pATIENT_NAME;
VERSION = vERSION;
FEEDBACK = fEEDBACK;
}
public AuditOpinion() {
super();
}
public AuditOpinion(String[]data){
super();
System.out.println(data.length+"chang"+data[16]);
/*OPINION_ID = Integer.valueOf(data[0]);
BUSINESS_NUM =data[1];
DOCUMENT_NUM = Long.parseLong(data[2]);*/
OPINION_ENCODING = data[3];
PROJECT_ENCODING = data[4];
PROJECT_NAME = data[5];
System.out.println(data[9]+"1111");
MEDICAL_INFOSUM = Double.valueOf(data[6]);
CROSS_CLAIM = Double.valueOf(data[7]);
RULE_NAME = data[8];
DEDUCT_REASON = data[9];
REPAY_REASON = data[10];
DOCTOR_NAME = data[11];
ROOM_ENCODING = data[12];
ROOM_NAME = data[13];
SimpleDateFormat sim=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
try {
IN_DATE = sim.parse(data[14]);
OUT_DATE = sim.parse(data[15]);
SETTLE_DATE = sim.parse(data[20]);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
FEES_DATE = data[16];
NUMBERS = Integer.valueOf(data[17]);
HOSPITAL_NUM = Long.parseLong(data[18]);
TREATMENT_WAY = data[19];
PATIENT_ID = Long.parseLong(data[21]);
PATIENT_NAME = data[22];
VERSION = Integer.valueOf(data[23]);
FEEDBACK = data[24];
}
}