写了一早的代码感觉很有成就感,大家一块看看;
package org.ilp.utils.poi; import java.beans.Transient; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.Column; import javax.persistence.Table; 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.ilp.entity.sale.detail.SaleDetailEntity; import com.google.common.collect.Lists; /** * Poi处理Excel * @author pengbaowei * */ public class PoiUtil { public static void main(String[] args) { SaleDetailEntity entity=new SaleDetailEntity(); Class<?> clazz=entity.getClass(); File file=new File("D:\\销售订单模板.xls"); List<?> readExcel = readExcel(clazz, file); for (Object object : readExcel) { SaleDetailEntity entity1=(SaleDetailEntity)object; System.out.println(entity1.getProofDate()); } } public static List<?> readExcel(Class<?> clazz,File file){ List<Object> list=Lists.newArrayList(); try { InputStream is = new FileInputStream(file); HSSFWorkbook workbook = new HSSFWorkbook(is); HSSFSheet sheet = workbook.getSheetAt(0); //表头字段数组 String[][] headerTable = null; //获取行数量 int rowNum = sheet.getLastRowNum(); for (int i = 0; i <=rowNum; i++) { //取出第一个sheet HSSFRow firstrRow = sheet.getRow(0); //获取一行中有多少个单元格 int collNum = firstrRow.getPhysicalNumberOfCells(); //第一行为表头 if(i==0&&collNum>0){ headerTable=new String[1][collNum]; for (int j = 0; j < collNum; j++) { HSSFCell cell = firstrRow.getCell((short) j); String stringCellValue = (String)getStringCellValue(cell); headerTable[0][j]=stringCellValue.toUpperCase(); } } else if(collNum>0){ HSSFRow row = sheet.getRow(i); Map<String, String> map = getHaveAnnotation(clazz); if( map.containsKey("tableName")){//表存在 Object obj = clazz.newInstance(); for(int l =0;l<headerTable[0].length; l++){ String columnName=headerTable[0][l]; if(map.containsKey(columnName)){ String columnNameAndMethod=map.get(columnName); String methodName = columnNameAndMethod.split(";")[1]; //找到该方法所对应的字段类型【传参用】 String firstChar = methodName.substring(3,4).toLowerCase(); String lastChar = methodName.substring(4, methodName.length()); Field field = clazz.getDeclaredField(firstChar+lastChar); Class<?> type = field.getType(); String name = type.getName(); String setMethodName = methodName.replace("get", "set"); Method declaredMethod = clazz.getDeclaredMethod(setMethodName, getExecutableMethodParameterType(name)); declaredMethod.invoke(obj,getStringCellValue(row.getCell(l)) ); } } list.add(obj); } } } } catch (Exception e) { e.printStackTrace(); } return list; } private static Class<?> getExecutableMethodParameterType(String type){ //jdk7 switch开始支持String类型 Class<?> clazz=null; switch (type) { case "java.lang.String": clazz=String.class; break; case "java.util.Date": clazz=Date.class; break; case "java.math.BigDecimal": clazz=BigDecimal.class; break; //后续添加类型 default: break; } return clazz; } private static Object getStringCellValue(HSSFCell cell){ Object strCell =""; switch(cell.getCellType()){ case HSSFCell.CELL_TYPE_STRING: //字符串型 strCell = cell.getStringCellValue(); break ; case HSSFCell.CELL_TYPE_NUMERIC: //数字类型 strCell=new BigDecimal(String.valueOf(cell.getNumericCellValue()).toString()); break; case HSSFCell.CELL_TYPE_BOOLEAN: //布尔型 strCell = String.valueOf(cell.getBooleanCellValue()); break ; case HSSFCell.CELL_TYPE_BLANK: //空类型 strCell ="" ; break ; case HSSFCell.CELL_TYPE_FORMULA: //公式类型 if(HSSFDateUtil.isCellDateFormatted(cell)){ strCell = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()); } break ; default: strCell ="" ; break ; } if(strCell.equals("")|| strCell == null){ strCell ="" ; } return strCell; } private static Map<String,String> getHaveAnnotation(Class<?> clazz){ Map<String,String> map=new HashMap<String,String>(); //判断类上有没有@Table注解 if(clazz.isAnnotationPresent(Table.class)){ Table annotation = clazz.getAnnotation(Table.class); if(!annotation.name().equals("")){ //将表名保存到map中 map.put("tableName", annotation.name()); List<Method> methodList = Arrays.asList(clazz.getDeclaredMethods()); for(Method method : methodList){ //判断是否有注解@Column并且不存在@Transient注解 if(method.isAnnotationPresent(Column.class)&&!method.isAnnotationPresent(Transient.class)){ //得到字段的名称 String name = method.getAnnotation(Column.class).name().toUpperCase(); if(!"".equals(name)){ //得到方法名 String methodName = method.getName(); map.put(name,name+";"+methodName); } } } } } return map; } }
package org.ilp.entity.sale.detail; import java.math.BigDecimal; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.Digits; import javax.validation.constraints.Past; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.GenericGenerator; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; import com.alibaba.fastjson.annotation.JSONField; /** * @Title: Entity * @Description: 销售明细 * @author * @date 2017-04-20 15:32:25 * @version V1.0 * */ @Entity @Table(name = "sale_detail", schema = "") @DynamicUpdate(true) @DynamicInsert(true) @SuppressWarnings("serial") public class SaleDetailEntity implements java.io.Serializable { /**id*/ private java.lang.String id; /**机构id*/ @NotEmpty(message="机构编码不能为空") @Length(max=20,message="机构id长度不能为空") private java.lang.String orgId; /**销售单号 前加org_id*/ @NotEmpty(message="销售单号不能为空") @Length(max=20,message="销售单号 前加org_id长度不能大于20") private java.lang.String proofId; /**原单号(erp传过来)*/ @Length(max=200,message="原单号长度不能大于200") private java.lang.String srcProofId; /**原行号*/ @Length(max=20,message="原行号长度不能大于20") private java.lang.String srcLineId; /**出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票*/ @Length(max=10,message="出库类型长度不能大于10") private java.lang.String saleType; /**开票日期、时间*/ @JSONField(format = "yyyy-MM-dd HH:mm:ss") @Past(message="开票日期、时间为时间类型") private java.util.Date proofDate; /**客户编号*/ @Length(max=20,message="客户编号长度不能大于20") private java.lang.String customerId; /**商品系统编号*/ @Length(max=20,message="客户编号长度不能大于20") private java.lang.String goodsId; /**批次*/ @Length(max=20,message="批次长度不能大于20") private java.lang.String lotNo; /**批号*/ @Length(max=20,message="批号长度不能大于20") private java.lang.String batchNo; /**效期*/ @JSONField(format = "yyyy-MM-dd HH:mm:ss") private java.util.Date validDate; /**生产日期*/ @Length(max=20,message="生产日期不能大于20") private java.lang.String productDate; /**销售数量*/ @Digits(integer=22,fraction=4,message="销售数量的整数位22,小数位4") private BigDecimal quantity; /**销售单价*/ @Digits(integer=22,fraction=4,message="销售单价的整数位22,小数位4") private BigDecimal price; /**销售金额*/ @Digits(integer=22,fraction=4,message="销售金额的整数位22,小数位4") private BigDecimal goodsAmount; /**批发单价*/ @Digits(integer=22,fraction=4,message="批发单价的整数位22,小数位4") private BigDecimal wsPrice; /**零售单价*/ @Digits(integer=22,fraction=4,message="零售单价的整数位22,小数位4") private BigDecimal rtPrice; /**销售扣率*/ @Digits(integer=22,fraction=4,message="销售扣率的整数位22,小数位4") private BigDecimal discount; /**销售实价*/ @Digits(integer=22,fraction=4,message="销售实价的整数位22,小数位4") private BigDecimal realPrice; /**物流中心编码*/ @Length(max=10,message="物流中心编码长度不能大于10") private java.lang.String warehostId; /**结算方式*/ @Length(max=20,message="结算方式长度不能大于20") private java.lang.String billStyle; /**开票人*/ @Length(max=20,message="开票人长度不能大于20") private java.lang.String proofHuman; /**经办人*/ @Length(max=20,message="经办人长度不能大于20") private java.lang.String doMan; /**复核人*/ @Length(max=20,message="复核人长度不能大于20") private java.lang.String chkMan; /**税金*/ @Digits(integer=22,fraction=2,message="税金的整数位22,小数位2") private BigDecimal tax; /**税率*/ @Digits(integer=22,fraction=2,message="税率为数值类型") private BigDecimal taxPer; /**去税金额*/ @Digits(integer=22,fraction=2,message="去税金额的整数位22,小数位2") private BigDecimal amountTax; /**收款日期*/ @JSONField(format = "yyyy-MM-dd HH:mm:ss") @Past(message="收款日期为时间类型") private java.util.Date getDate; /**开票种类(待确认)*/ @Length(max=60,message="开票种类(待确认)的长度不能大于60") private java.lang.String proofStyle; /**client_style*/ @Length(max=10,message="client_style的长度不能大于10") private java.lang.String clientStyle; /**备注*/ @Length(max=200,message="备注的长度不能大于200") private java.lang.String memo; /**票据等级*/ @Length(max=10,message="票据等级的长度不能大于10") private java.lang.String billLevel; /**出货时间*/ @Length(max=34,message="发货时间长度不能大于34") private String sendTime; /**分公司编号*/ @Length(max=10,message="分公司编号的长度不能大于10") private java.lang.String companyId; /**电子监管码*/ @Length(max=60,message="电子监管码的长度不能大于60") private java.lang.String drugSuperviseSn; /**进价*/ @Digits(integer=18,fraction=6,message="进价的整数位18,小数位6") private BigDecimal buyPrice; /**付款类型*/ @Length(max=10,message="付款类型的长度不能大于10") private java.lang.String paymentType; /**状态*/ @Length(max=10,message="状态的长度不能大于10") private java.lang.String state; /**质量标识*/ @Length(max=10,message="质量标识的长度不能大于10") private java.lang.String qualityFlag; /**账务标识*/ @Length(max=10,message="账务标识的长度不能大于10") private java.lang.String accountFlag; /**备用1*/ @Length(max=200,message="备用1的长度不能大于200") private java.lang.String memoFile1; /**备用2*/ @Length(max=200,message="备用2的长度不能大于200") private java.lang.String memoFile2; /**备用3*/ @Length(max=200,message="备用3的长度不能大于200") private java.lang.String memoFile3; /**拼单标识*/ @Digits(integer=38,fraction=4,message="拼单标识的整数部分为38") private BigDecimal monomark; /**事业部编码*/ @Length(max=10,message="事业部编码的长度不能大于10") private java.lang.String departId2; /**货主id*/ @Length(max=20,message="事货主id的长度不能大于20") private java.lang.String ownerId; /**是否删除*/ private java.lang.String isdeleted; /**创建人机构序列 对应om_organization 中的 orgseq*/ @Length(max=512,message="创建人机构序列 的长度不能大于512") private java.lang.String createOrgseq; /**创建人机构 对应om_organization中的orgid*/ @Length(max=2,message="创建人机构 对应om_organization中的orgid的长度不能大于2") private java.lang.String createRole; /**仓库类型*/ @Length(max=10,message="仓库类型的长度不能大于10") private java.lang.String warehouseType; /**addId*/ @Length(max=20,message="addId的长度不能大于20") private java.lang.String addId; /**商品编码*/ @Length(max=20,message="商品编码的长度不能大于20") private java.lang.String goodssysId; /**公司编码*/ @Length(max=20,message="公司编码的长度不能大于20") private java.lang.String customersysId; /**线路*/ @Length(max=30,message="线路的长度不能大于30") private java.lang.String haulingtrack; /**药检报告*/ @Length(max=10,message="药检报告的长度的为10") private java.lang.String yaojianFlag; /**goodsPcKillbac*/ @Length(max=50,message="goodsPcKillbac的长度不能大于50") private java.lang.String goodsPcKillbac; /**proofLines*/ @Digits(integer=22,fraction=2,message="proofLines为数值类型") private BigDecimal proofLines; /**赠品状态 y 有赠品n无赠品*/ @Length(max=10,message="*赠品状态的长度不能大于10") private java.lang.String largessFlage; /**发票号*/ private java.lang.String receiptNo; /**1直送2转运*/ @DecimalMax(value="5",message="1直送2转运为5") private java.lang.String distlevel; /**发票方式*/ @Length(max=200,message="发票方式的长度为200") private java.lang.String billType; /**是否扫描发票,0不需要,1需要*/ @Digits(integer=38,fraction=4,message="税率整数位38") private BigDecimal billFlag; /**1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值*/ @Length(max=200,message="指定批号需要传此批号的对应的采购单号和行号 的长度为200") private java.lang.String billSrcproofid; /**首营品种打印,0不打印,1打印*/ @Digits(integer=38,fraction=4,message="首营品种打印整数位38") private BigDecimal goodsFlag; /**toLineId*/ private java.lang.String toLineId; /**送货类型1正常,2,送货到家,3分包到家*/ @Length(max=5,message="送货类型长度不能大于5") private java.lang.String transType; /**updState*/ @Length(max=20,message="updState的长度不能大于20") private java.lang.String updState; /**updDate*/ @JSONField(format = "yyyy-MM-dd HH:mm:ss") @Past(message="更新时间为时间类型") private java.util.Date updDate; /** *方法: 取得java.lang.String *@return: java.lang.String id */ @Id @GeneratedValue(generator = "paymentableGenerator") @GenericGenerator(name = "paymentableGenerator", strategy = "uuid") @Column(name ="ID",nullable=false,length=20) public java.lang.String getId(){ return this.id; } /** *方法: 设置java.lang.String *@param: java.lang.String id */ public void setId(java.lang.String id){ this.id = id; } /** *方法: 取得java.lang.String *@return: java.lang.String 机构id */ @Column(name ="ORG_ID",nullable=false,length=20) public java.lang.String getOrgId(){ return this.orgId; } /** *方法: 设置java.lang.String *@param: java.lang.String 机构id */ public void setOrgId(java.lang.String orgId){ this.orgId = orgId; } /** *方法: 取得java.lang.String *@return: java.lang.String 销售单号 前加org_id */ @Column(name ="PROOF_ID",nullable=true,length=20) public java.lang.String getProofId(){ return this.proofId; } /** *方法: 设置java.lang.String *@param: java.lang.String 销售单号 前加org_id */ public void setProofId(java.lang.String proofId){ this.proofId = proofId; } /** *方法: 取得java.lang.String *@return: java.lang.String 原单号(erp传过来) */ @Column(name ="SRC_PROOF_ID",nullable=false,length=20) public java.lang.String getSrcProofId(){ return this.srcProofId; } /** *方法: 设置java.lang.String *@param: java.lang.String 原单号(erp传过来) */ public void setSrcProofId(java.lang.String srcProofId){ this.srcProofId = srcProofId; } /** *方法: 取得java.lang.String *@return: java.lang.String 原行号 */ @Column(name ="SRC_LINE_ID",nullable=false,length=20) public java.lang.String getSrcLineId(){ return this.srcLineId; } /** *方法: 设置java.lang.String *@param: java.lang.String 原行号 */ public void setSrcLineId(java.lang.String srcLineId){ this.srcLineId = srcLineId; } /** *方法: 取得java.lang.String *@return: java.lang.String 出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票 */ @Column(name ="SALE_TYPE",nullable=false,length=10) public java.lang.String getSaleType(){ return this.saleType; } /** *方法: 设置java.lang.String *@param: java.lang.String 出库类型,销售出库、调拨出库、退厂出库、取样出库、销售退票 */ public void setSaleType(java.lang.String saleType){ this.saleType = saleType; } /** *方法: 取得java.util.Date *@return: java.util.Date 开票日期、时间 */ @Column(name ="PROOF_DATE",nullable=false) public java.util.Date getProofDate(){ return this.proofDate; } /** *方法: 设置java.util.Date *@param: java.util.Date 开票日期、时间 */ public void setProofDate(java.util.Date proofDate){ this.proofDate = proofDate; } /** *方法: 取得java.lang.String *@return: java.lang.String 客户编号 */ @Column(name ="CUSTOMER_ID",nullable=false,length=20) public java.lang.String getCustomerId(){ return this.customerId; } /** *方法: 设置java.lang.String *@param: java.lang.String 客户编号 */ public void setCustomerId(java.lang.String customerId){ this.customerId = customerId; } /** *方法: 取得java.lang.String *@return: java.lang.String 商品系统编号 */ @Column(name ="GOODS_ID",nullable=false,length=20) public java.lang.String getGoodsId(){ return this.goodsId; } /** *方法: 设置java.lang.String *@param: java.lang.String 商品系统编号 */ public void setGoodsId(java.lang.String goodsId){ this.goodsId = goodsId; } /** *方法: 取得java.lang.String *@return: java.lang.String 批次 */ @Column(name ="LOT_NO",nullable=false,length=50) public java.lang.String getLotNo(){ return this.lotNo; } /** *方法: 设置java.lang.String *@param: java.lang.String 批次 */ public void setLotNo(java.lang.String lotNo){ this.lotNo = lotNo; } /** *方法: 取得java.lang.String *@return: java.lang.String 批号 */ @Column(name ="BATCH_NO",nullable=false,length=50) public java.lang.String getBatchNo(){ return this.batchNo; } /** *方法: 设置java.lang.String *@param: java.lang.String 批号 */ public void setBatchNo(java.lang.String batchNo){ this.batchNo = batchNo; } /** *方法: 取得java.util.Date *@return: java.util.Date 效期 */ @Column(name ="VALID_DATE",nullable=false) public java.util.Date getValidDate(){ return this.validDate; } /** *方法: 设置java.util.Date *@param: java.util.Date 效期 */ public void setValidDate(java.util.Date validDate){ this.validDate = validDate; } /** *方法: 取得java.lang.String *@return: java.lang.String 生产日期 */ @Column(name ="PRODUCT_DATE",nullable=false,length=20) public java.lang.String getProductDate(){ return this.productDate; } /** *方法: 设置java.lang.String *@param: java.lang.String 生产日期 */ public void setProductDate(java.lang.String productDate){ this.productDate = productDate; } /** *方法: 取得BigDecimal *@return: BigDecimal 销售数量 */ @Column(name ="QUANTITY",nullable=false,precision=26,scale=4) public BigDecimal getQuantity(){ return this.quantity; } /** *方法: 设置BigDecimal *@param: BigDecimal 销售数量 */ public void setQuantity(BigDecimal quantity){ this.quantity = quantity; } /** *方法: 取得BigDecimal *@return: BigDecimal 销售单价 */ @Column(name ="PRICE",nullable=false,precision=22,scale=4) public BigDecimal getPrice(){ return this.price; } /** *方法: 设置BigDecimal *@param: BigDecimal 销售单价 */ public void setPrice(BigDecimal price){ this.price = price; } /** *方法: 取得BigDecimal *@return: BigDecimal 销售金额 */ @Column(name ="GOODS_AMOUNT",nullable=false,precision=22,scale=2) public BigDecimal getGoodsAmount(){ return this.goodsAmount; } /** *方法: 设置BigDecimal *@param: BigDecimal 销售金额 */ public void setGoodsAmount(BigDecimal goodsAmount){ this.goodsAmount = goodsAmount; } /** *方法: 取得BigDecimal *@return: BigDecimal 批发单价 */ @Column(name ="WS_PRICE",nullable=false,precision=22,scale=4) public BigDecimal getWsPrice(){ return this.wsPrice; } /** *方法: 设置BigDecimal *@param: BigDecimal 批发单价 */ public void setWsPrice(BigDecimal wsPrice){ this.wsPrice = wsPrice; } /** *方法: 取得BigDecimal *@return: BigDecimal 零售单价 */ @Column(name ="RT_PRICE",nullable=false,precision=22,scale=4) public BigDecimal getRtPrice(){ return this.rtPrice; } /** *方法: 设置BigDecimal *@param: BigDecimal 零售单价 */ public void setRtPrice(BigDecimal rtPrice){ this.rtPrice = rtPrice; } /** *方法: 取得BigDecimal *@return: BigDecimal 销售扣率 */ @Column(name ="DISCOUNT",nullable=false,precision=22,scale=4) public BigDecimal getDiscount(){ return this.discount; } /** *方法: 设置BigDecimal *@param: BigDecimal 销售扣率 */ public void setDiscount(BigDecimal discount){ this.discount = discount; } /** *方法: 取得BigDecimal *@return: BigDecimal 销售实价 */ @Column(name ="REAL_PRICE",nullable=false,precision=22,scale=4) public BigDecimal getRealPrice(){ return this.realPrice; } /** *方法: 设置BigDecimal *@param: BigDecimal 销售实价 */ public void setRealPrice(BigDecimal realPrice){ this.realPrice = realPrice; } /** *方法: 取得java.lang.String *@return: java.lang.String 物流中心编码 */ @Column(name ="WAREHOST_ID",nullable=false,length=10) public java.lang.String getWarehostId(){ return this.warehostId; } /** *方法: 设置java.lang.String *@param: java.lang.String 物流中心编码 */ public void setWarehostId(java.lang.String warehostId){ this.warehostId = warehostId; } /** *方法: 取得java.lang.String *@return: java.lang.String 结算方式 */ @Column(name ="BILL_STYLE",nullable=false,length=10) public java.lang.String getBillStyle(){ return this.billStyle; } /** *方法: 设置java.lang.String *@param: java.lang.String 结算方式 */ public void setBillStyle(java.lang.String billStyle){ this.billStyle = billStyle; } /** *方法: 取得java.lang.String *@return: java.lang.String 开票人 */ @Column(name ="PROOF_HUMAN",nullable=false,length=20) public java.lang.String getProofHuman(){ return this.proofHuman; } /** *方法: 设置java.lang.String *@param: java.lang.String 开票人 */ public void setProofHuman(java.lang.String proofHuman){ this.proofHuman = proofHuman; } /** *方法: 取得java.lang.String *@return: java.lang.String 经办人 */ @Column(name ="DO_MAN",nullable=false,length=20) public java.lang.String getDoMan(){ return this.doMan; } /** *方法: 设置java.lang.String *@param: java.lang.String 经办人 */ public void setDoMan(java.lang.String doMan){ this.doMan = doMan; } /** *方法: 取得java.lang.String *@return: java.lang.String 复核人 */ @Column(name ="CHK_MAN",nullable=false,length=20) public java.lang.String getChkMan(){ return this.chkMan; } /** *方法: 设置java.lang.String *@param: java.lang.String 复核人 */ public void setChkMan(java.lang.String chkMan){ this.chkMan = chkMan; } /** *方法: 取得BigDecimal *@return: BigDecimal 税金 */ @Column(name ="TAX",nullable=false,precision=22,scale=2) public BigDecimal getTax(){ return this.tax; } /** *方法: 设置BigDecimal *@param: BigDecimal 税金 */ public void setTax(BigDecimal tax){ this.tax = tax; } /** *方法: 取得BigDecimal *@return: BigDecimal 税率 */ @Column(name ="TAX_PER",nullable=false,precision=5,scale=0) public BigDecimal getTaxPer(){ return this.taxPer; } /** *方法: 设置BigDecimal *@param: BigDecimal 税率 */ public void setTaxPer(BigDecimal taxPer){ this.taxPer = taxPer; } /** *方法: 取得BigDecimal *@return: BigDecimal 去税金额 */ @Column(name ="AMOUNT_TAX",nullable=false,precision=22,scale=2) public BigDecimal getAmountTax(){ return this.amountTax; } /** *方法: 设置BigDecimal *@param: BigDecimal 去税金额 */ public void setAmountTax(BigDecimal amountTax){ this.amountTax = amountTax; } /** *方法: 取得java.util.Date *@return: java.util.Date 收款日期 */ @Column(name ="GET_DATE",nullable=false) public java.util.Date getGetDate(){ return this.getDate; } /** *方法: 设置java.util.Date *@param: java.util.Date 收款日期 */ public void setGetDate(java.util.Date getDate){ this.getDate = getDate; } /** *方法: 取得java.lang.String *@return: java.lang.String 开票种类(待确认) */ @Column(name ="PROOF_STYLE",nullable=false,length=60) public java.lang.String getProofStyle(){ return this.proofStyle; } /** *方法: 设置java.lang.String *@param: java.lang.String 开票种类(待确认) */ public void setProofStyle(java.lang.String proofStyle){ this.proofStyle = proofStyle; } /** *方法: 取得java.lang.String *@return: java.lang.String client_style */ @Column(name ="CLIENT_STYLE",nullable=false,length=10) public java.lang.String getClientStyle(){ return this.clientStyle; } /** *方法: 设置java.lang.String *@param: java.lang.String client_style */ public void setClientStyle(java.lang.String clientStyle){ this.clientStyle = clientStyle; } /** *方法: 取得java.lang.String *@return: java.lang.String 备注 */ @Column(name ="MEMO",nullable=false,length=200) public java.lang.String getMemo(){ return this.memo; } /** *方法: 设置java.lang.String *@param: java.lang.String 备注 */ public void setMemo(java.lang.String memo){ this.memo = memo; } /** *方法: 取得java.lang.String *@return: java.lang.String 票据等级 */ @Column(name ="BILL_LEVEL",nullable=false,length=10) public java.lang.String getBillLevel(){ return this.billLevel; } /** *方法: 设置java.lang.String *@param: java.lang.String 票据等级 */ public void setBillLevel(java.lang.String billLevel){ this.billLevel = billLevel; } /** *方法: 取得BigDecimal *@return: BigDecimal 出货时间 */ @Column(name ="SEND_TIME") public String getSendTime(){ return this.sendTime; } /** *方法: 设置BigDecimal *@param: BigDecimal 出货时间 */ public void setSendTime(String sendTime){ this.sendTime = sendTime; } /** *方法: 取得java.lang.String *@return: java.lang.String 分公司编号 */ @Column(name ="COMPANY_ID",nullable=false,length=10) public java.lang.String getCompanyId(){ return this.companyId; } /** *方法: 设置java.lang.String *@param: java.lang.String 分公司编号 */ public void setCompanyId(java.lang.String companyId){ this.companyId = companyId; } /** *方法: 取得java.lang.String *@return: java.lang.String 电子监管码 */ @Column(name ="DRUG_SUPERVISE_SN",nullable=false,length=60) public java.lang.String getDrugSuperviseSn(){ return this.drugSuperviseSn; } /** *方法: 设置java.lang.String *@param: java.lang.String 电子监管码 */ public void setDrugSuperviseSn(java.lang.String drugSuperviseSn){ this.drugSuperviseSn = drugSuperviseSn; } /** *方法: 取得BigDecimal *@return: BigDecimal 进价 */ @Column(name ="BUY_PRICE",nullable=false,precision=18,scale=4) public BigDecimal getBuyPrice(){ return this.buyPrice; } /** *方法: 设置BigDecimal *@param: BigDecimal 进价 */ public void setBuyPrice(BigDecimal buyPrice){ this.buyPrice = buyPrice; } /** *方法: 取得java.lang.String *@return: java.lang.String 付款类型 */ @Column(name ="PAYMENT_TYPE",nullable=false,length=10) public java.lang.String getPaymentType(){ return this.paymentType; } /** *方法: 设置java.lang.String *@param: java.lang.String 付款类型 */ public void setPaymentType(java.lang.String paymentType){ this.paymentType = paymentType; } /** *方法: 取得java.lang.String *@return: java.lang.String 状态 */ @Column(name ="STATE",nullable=false,length=10) public java.lang.String getState(){ return this.state; } /** *方法: 设置java.lang.String *@param: java.lang.String 状态 */ public void setState(java.lang.String state){ this.state = state; } /** *方法: 取得java.lang.String *@return: java.lang.String 质量标识 */ @Column(name ="QUALITY_FLAG",nullable=false,length=10) public java.lang.String getQualityFlag(){ return this.qualityFlag; } /** *方法: 设置java.lang.String *@param: java.lang.String 质量标识 */ public void setQualityFlag(java.lang.String qualityFlag){ this.qualityFlag = qualityFlag; } /** *方法: 取得java.lang.String *@return: java.lang.String 账务标识 */ @Column(name ="ACCOUNT_FLAG",nullable=false,length=10) public java.lang.String getAccountFlag(){ return this.accountFlag; } /** *方法: 设置java.lang.String *@param: java.lang.String 账务标识 */ public void setAccountFlag(java.lang.String accountFlag){ this.accountFlag = accountFlag; } /** *方法: 取得java.lang.String *@return: java.lang.String 备用1 */ @Column(name ="MEMO_FILE1",nullable=false,length=200) public java.lang.String getMemoFile1(){ return this.memoFile1; } /** *方法: 设置java.lang.String *@param: java.lang.String 备用1 */ public void setMemoFile1(java.lang.String memoFile1){ this.memoFile1 = memoFile1; } /** *方法: 取得java.lang.String *@return: java.lang.String 备用2 */ @Column(name ="MEMO_FILE2",nullable=false,length=200) public java.lang.String getMemoFile2(){ return this.memoFile2; } /** *方法: 设置java.lang.String *@param: java.lang.String 备用2 */ public void setMemoFile2(java.lang.String memoFile2){ this.memoFile2 = memoFile2; } /** *方法: 取得java.lang.String *@return: java.lang.String 备用3 */ @Column(name ="MEMO_FILE3",nullable=false,length=200) public java.lang.String getMemoFile3(){ return this.memoFile3; } /** *方法: 设置java.lang.String *@param: java.lang.String 备用3 */ public void setMemoFile3(java.lang.String memoFile3){ this.memoFile3 = memoFile3; } /** *方法: 取得BigDecimal *@return: BigDecimal 拼单标识 */ @Column(name ="MONOMARK",nullable=false,precision=10,scale=0) public BigDecimal getMonomark(){ return this.monomark; } /** *方法: 设置BigDecimal *@param: BigDecimal 拼单标识 */ public void setMonomark(BigDecimal monomark){ this.monomark = monomark; } /** *方法: 取得java.lang.String *@return: java.lang.String 事业部编码 */ @Column(name ="DEPART_ID2",nullable=false,length=10) public java.lang.String getDepartId2(){ return this.departId2; } /** *方法: 设置java.lang.String *@param: java.lang.String 事业部编码 */ public void setDepartId2(java.lang.String departId2){ this.departId2 = departId2; } /** *方法: 取得java.lang.String *@return: java.lang.String 货主id */ @Column(name ="OWNER_ID",nullable=false,length=20) public java.lang.String getOwnerId(){ return this.ownerId; } /** *方法: 设置java.lang.String *@param: java.lang.String 货主id */ public void setOwnerId(java.lang.String ownerId){ this.ownerId = ownerId; } /** *方法: 取得java.lang.String *@return: java.lang.String 是否删除 */ @Column(name ="ISDELETED",nullable=false,length=1) public java.lang.String getIsdeleted(){ return this.isdeleted; } /** *方法: 设置java.lang.String *@param: java.lang.String 是否删除 */ public void setIsdeleted(java.lang.String isdeleted){ this.isdeleted = isdeleted; } /** *方法: 取得java.lang.String *@return: java.lang.String 创建人机构序列 对应om_organization 中的 orgseq */ @Column(name ="CREATE_ORGSEQ",nullable=false,length=512) public java.lang.String getCreateOrgseq(){ return this.createOrgseq; } /** *方法: 设置java.lang.String *@param: java.lang.String 创建人机构序列 对应om_organization 中的 orgseq */ public void setCreateOrgseq(java.lang.String createOrgseq){ this.createOrgseq = createOrgseq; } /** *方法: 取得java.lang.String *@return: java.lang.String 创建人机构 对应om_organization中的orgid */ @Column(name ="CREATE_ROLE",nullable=false,length=50) public java.lang.String getCreateRole(){ return this.createRole; } /** *方法: 设置java.lang.String *@param: java.lang.String 创建人机构 对应om_organization中的orgid */ public void setCreateRole(java.lang.String createRole){ this.createRole = createRole; } /** *方法: 取得java.lang.String *@return: java.lang.String 仓库类型 */ @Column(name ="WAREHOUSE_TYPE",nullable=false,length=10) public java.lang.String getWarehouseType(){ return this.warehouseType; } /** *方法: 设置java.lang.String *@param: java.lang.String 仓库类型 */ public void setWarehouseType(java.lang.String warehouseType){ this.warehouseType = warehouseType; } /** *方法: 取得java.lang.String *@return: java.lang.String addId */ @Column(name ="ADD_ID",nullable=false,length=20) public java.lang.String getAddId(){ return this.addId; } /** *方法: 设置java.lang.String *@param: java.lang.String addId */ public void setAddId(java.lang.String addId){ this.addId = addId; } /** *方法: 取得java.lang.String *@return: java.lang.String 商品编码 */ @Column(name ="GOODSSYS_ID",nullable=false,length=20) public java.lang.String getGoodssysId(){ return this.goodssysId; } /** *方法: 设置java.lang.String *@param: java.lang.String 商品编码 */ public void setGoodssysId(java.lang.String goodssysId){ this.goodssysId = goodssysId; } /** *方法: 取得java.lang.String *@return: java.lang.String 公司编码 */ @Column(name ="CUSTOMERSYS_ID",nullable=false,length=20) public java.lang.String getCustomersysId(){ return this.customersysId; } /** *方法: 设置java.lang.String *@param: java.lang.String 公司编码 */ public void setCustomersysId(java.lang.String customersysId){ this.customersysId = customersysId; } /** *方法: 取得java.lang.String *@return: java.lang.String 线路 */ @Column(name ="HAULINGTRACK",nullable=false,length=30) public java.lang.String getHaulingtrack(){ return this.haulingtrack; } /** *方法: 设置java.lang.String *@param: java.lang.String 线路 */ public void setHaulingtrack(java.lang.String haulingtrack){ this.haulingtrack = haulingtrack; } /** *方法: 取得java.lang.String *@return: java.lang.String 药检报告 */ @Column(name ="YAOJIAN_FLAG",nullable=false,length=10) public java.lang.String getYaojianFlag(){ return this.yaojianFlag; } /** *方法: 设置java.lang.String *@param: java.lang.String 药检报告 */ public void setYaojianFlag(java.lang.String yaojianFlag){ this.yaojianFlag = yaojianFlag; } /** *方法: 取得java.lang.String *@return: java.lang.String goodsPcKillbac */ @Column(name ="GOODS_PC_KILLBAC",nullable=false,length=50) public java.lang.String getGoodsPcKillbac(){ return this.goodsPcKillbac; } /** *方法: 设置java.lang.String *@param: java.lang.String goodsPcKillbac */ public void setGoodsPcKillbac(java.lang.String goodsPcKillbac){ this.goodsPcKillbac = goodsPcKillbac; } /** *方法: 取得BigDecimal *@return: BigDecimal proofLines */ @Column(name ="PROOF_LINES",nullable=false,precision=10,scale=0) public BigDecimal getProofLines(){ return this.proofLines; } /** *方法: 设置BigDecimal *@param: BigDecimal proofLines */ public void setProofLines(BigDecimal proofLines){ this.proofLines = proofLines; } /** *方法: 取得java.lang.String *@return: java.lang.String 赠品状态 y 有赠品n无赠品 */ @Column(name ="LARGESS_FLAGE",nullable=false,length=50) public java.lang.String getLargessFlage(){ return this.largessFlage; } /** *方法: 设置java.lang.String *@param: java.lang.String 赠品状态 y 有赠品n无赠品 */ public void setLargessFlage(java.lang.String largessFlage){ this.largessFlage = largessFlage; } /** *方法: 取得java.lang.String *@return: java.lang.String 发票号 */ @Column(name ="RECEIPT_NO",nullable=false,length=20) public java.lang.String getReceiptNo(){ return this.receiptNo; } /** *方法: 设置java.lang.String *@param: java.lang.String 发票号 */ public void setReceiptNo(java.lang.String receiptNo){ this.receiptNo = receiptNo; } /** *方法: 取得java.lang.String *@return: java.lang.String 1直送2转运 */ @Column(name ="DISTLEVEL",nullable=false,length=20) public java.lang.String getDistlevel(){ return this.distlevel; } /** *方法: 设置java.lang.String *@param: java.lang.String 1直送2转运 */ public void setDistlevel(java.lang.String distlevel){ this.distlevel = distlevel; } /** *方法: 取得java.lang.String *@return: java.lang.String 发票方式 */ @Column(name ="BILL_TYPE",nullable=false,length=20) public java.lang.String getBillType(){ return this.billType; } /** *方法: 设置java.lang.String *@param: java.lang.String 发票方式 */ public void setBillType(java.lang.String billType){ this.billType = billType; } /** *方法: 取得BigDecimal *@return: BigDecimal 是否扫描发票,0不需要,1需要 */ @Column(name ="BILL_FLAG",nullable=false,precision=10,scale=0) public BigDecimal getBillFlag(){ return this.billFlag; } /** *方法: 设置BigDecimal *@param: BigDecimal 是否扫描发票,0不需要,1需要 */ public void setBillFlag(BigDecimal billFlag){ this.billFlag = billFlag; } /** *方法: 取得java.lang.String *@return: java.lang.String 1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值 */ @Column(name ="BILL_SRCPROOFID",nullable=false,length=200) public java.lang.String getBillSrcproofid(){ return this.billSrcproofid; } /** *方法: 设置java.lang.String *@param: java.lang.String 1.如果指定批号需要传此批号的对应的采购单号和行号 src_proof_id||src_line_id 2.如果不知道批号传空值 */ public void setBillSrcproofid(java.lang.String billSrcproofid){ this.billSrcproofid = billSrcproofid; } /** *方法: 取得BigDecimal *@return: BigDecimal 首营品种打印,0不打印,1打印 */ @Column(name ="GOODS_FLAG",nullable=false,precision=10,scale=0) public BigDecimal getGoodsFlag(){ return this.goodsFlag; } /** *方法: 设置BigDecimal *@param: BigDecimal 首营品种打印,0不打印,1打印 */ public void setGoodsFlag(BigDecimal goodsFlag){ this.goodsFlag = goodsFlag; } /** *方法: 取得java.lang.String *@return: java.lang.String toLineId */ @Column(name ="TO_LINE_ID",nullable=false,length=15) public java.lang.String getToLineId(){ return this.toLineId; } /** *方法: 设置java.lang.String *@param: java.lang.String toLineId */ public void setToLineId(java.lang.String toLineId){ this.toLineId = toLineId; } /** *方法: 取得java.lang.String *@return: java.lang.String 送货类型1正常,2,送货到家,3分包到家 */ @Column(name ="TRANS_TYPE",nullable=false,length=5) public java.lang.String getTransType(){ return this.transType; } /** *方法: 设置java.lang.String *@param: java.lang.String 送货类型1正常,2,送货到家,3分包到家 */ public void setTransType(java.lang.String transType){ this.transType = transType; } /** *方法: 取得java.lang.String *@return: java.lang.String updState */ @Column(name ="UPD_STATE",nullable=false,length=10) public java.lang.String getUpdState(){ return this.updState; } /** *方法: 设置java.lang.String *@param: java.lang.String updState */ public void setUpdState(java.lang.String updState){ this.updState = updState; } /** *方法: 取得java.util.Date *@return: java.util.Date updDate */ @Column(name ="UPD_DATE",nullable=false) public java.util.Date getUpdDate(){ return this.updDate; } /** *方法: 设置java.util.Date *@param: java.util.Date updDate */ public void setUpdDate(java.util.Date updDate){ this.updDate = updDate; } }
相关推荐
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
以上就是使用Java Poi解析Excel数据的基本流程。在实际应用中,你可能还需要处理其他复杂场景,比如样式、公式、超链接等。Poi库提供了丰富的API来处理这些问题,使得与Excel文件的交互变得简单且灵活。在提供的"poi...
在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...
标题提到的"poi解析excel文件"是利用Apache POI 3.8版本进行Excel数据的读取和解析。 在Apache POI 3.8中,主要涉及以下核心概念: 1. **HSSF(Horrible Spreadsheet Format)**:这是Apache POI中处理旧版Excel...
标题“POI解析EXCEL分层”涉及到的主要知识点是Apache POI库在处理Microsoft Excel文件时的层次化数据解析。Apache POI是一个流行的开源Java API,它允许开发者读取、写入和修改Microsoft Office格式的文件,其中...
在这个"poi 解析excel文件内容demo"中,我们主要关注如何使用Apache POI库来读取和解析Excel文件,无论它们是2003版的.XLS还是2007以后的.XLSX格式。 首先,Apache POI提供了两种主要的接口来处理Excel文件:HSSF...
【标题】"poi解析excel"涉及的是Java编程中使用Apache POI库来处理Microsoft Excel文件的知识。Apache POI是开源项目,提供了API用于读写Microsoft Office格式的文件,特别是Excel。在Java应用中,POI使得开发者能够...
以上就是使用Apache POI解析Excel文件并将数据存入Oracle数据库的基本步骤。在实际应用中,你可能需要根据具体需求进行调整,例如处理不同类型的单元格(数字、日期等)、异常处理、优化性能等。
POI解析Excel简单实例
apache poi解析Excel时报错,我将Excel打开后保存,就不会报错,我将重写的类从新打包这样问题虽然网上有解决方案,但是需要自己打包重写对应类,我已将这些步骤做好了。
这个“POI解析excel并存入mysqlのdemo”是利用 Java 的 Apache POI 库来读取 Excel 数据,并将这些数据存储到 MySQL 数据库中的示例。下面我们将详细探讨相关的知识点。 1. **Apache POI**: Apache POI 是一个...
在描述中提到的“ poi解析excel的工具类”,通常包含了一些常用的方法,例如打开文件、读取单元格数据、处理合并单元格等。以下是一些可能包含在该工具类中的关键方法: 1. **打开文件**:使用`WorkbookFactory`类...
【标题】"POI解析Excel文档"涉及到的主要技术是Apache POI库,它是一个用于读取和写入Microsoft Office格式档案的开源Java API。在Java编程环境中,使用POI库可以方便地处理Excel(.xlsx和.xls)文件,进行数据的...
在Java环境中,使用Apache POI库解析Excel文件时,确实需要引入一系列的依赖包来确保所有必要的功能得以正常运行。这些包包含了对Excel文件格式的理解和支持,允许开发者读取、写入和修改Excel数据。 1. **Apache ...
最新版poi解析excel2007源码,简单实用,需要的可下.
本示例将深入讲解如何使用Apache POI来解析Excel文件。 Apache POI是Apache软件基金会的一个开源项目,它的主要功能是处理微软的Office Open XML (OOXML) 和早期的二进制文件格式,例如Excel的.BIFF8格式。在Java中...
《使用POI解析Excel》 在信息技术领域,处理数据是日常工作中不可或缺的一部分,而Excel作为广泛使用的电子表格软件,其数据处理能力强大且灵活。Apache POI是一个开源库,专门用于读取和写入Microsoft Office格式...
在本文中,我们将深入探讨如何使用POI解析Excel 2013和2017版本的文件,并将结果转换为List集合。 一、Apache POI简介 Apache POI是Apache软件基金会的一个开源项目,它提供了API来读取、写入和修改Microsoft ...