java不固定模板excel_固定的模版excel修改,通过Java导入到数据库中

//导入

FileInputStream inputStream =new FileInputStream("D:\\资产管理.xls");

HSSFWorkbook workbook=newHSSFWorkbook(inputStream);//需要转换的字段与转换数据建立关联关系

Map> changeMap = new HashMap();//(很重要,主要就是修改前台需要的键)//资产类型

List typelist = selectDataService.queryForList("select * from t_assettype");

Map typemap = new HashMap();for(Map map : typelist) {

typemap.put(map.get("NAME").toString(), map.get("ID").toString());

}//查出资产类型的修改键位

changeMap.put("typeid", typemap);//厂家

List factorylist = selectDataService.queryForList("select * from T_FACTORY");

Map factorymap = new HashMap();for(Map map : factorylist) {

factorymap.put(map.get("NAME").toString(), map.get("ID").toString());

}

changeMap.put("factory", factorymap);//用户

List userlist = selectDataService.queryForList("select * from t_user");

Map usermap = new HashMap();for(Map map : userlist) {

usermap.put(map.get("REALNAME").toString(), map.get("ID").toString());

}

changeMap.put("userid", usermap);//将中文字段与英文字段建立关系

List list = selectDataService.queryForList("select COLUMN_NAME,COMMENTS from user_col_comments where table_name='T_ASSET' AND comments is not null");

Map colmap = new HashMap();

String sql=" insert into t_asset (";

String colSql="";for(Map map : list) {

colmap.put(map.get("COMMENTS").toString(), map.get("COLUMN_NAME").toString());

colSql+=","+map.get("COLUMN_NAME").toString();

}

colSql=colSql.substring(1);

colSql+=",id) values( ";//获取sheet数量

int sheetNum =workbook.getNumberOfSheets();//循环读取sheet

for (int i = 0; i < sheetNum; i++) {

HSSFSheet sheet=workbook.getSheetAt(i);//获取有效行数

int rownum =sheet.getLastRowNum();//中文字段名称集合

List cnColList = newArrayList();for (int j = 1; j <=rownum; j++) {

HSSFRow row=sheet.getRow(j);

String valueSql="";if(j==1){//解析字段信息

for (int j2 = 0; j2 < row.getLastCellNum(); j2++) {

cnColList.add(row.getCell(j2).getStringCellValue());

}

}else{//解析数据行

for (int k = 0; k

String encol =colmap.get(cnColList.get(k));//获取数据值

String cellVal =row.getCell(k).getStringCellValue();if(changeMap.get(encol.toLowerCase())!=null){

cellVal=changeMap.get(encol.toLowerCase()).get(cellVal).toString();

}if(cnColList.get(k).equals("购买日期")){

cellVal="to_date('"+cellVal+"','yyyy-MM-dd')";

valueSql+=","+cellVal;

}else{

valueSql+=",'"+cellVal+"'";

}

}

valueSql=valueSql.substring(1);

valueSql+=",'"+WebUtils.getRandomId()+"')";

System.out.println(sql+colSql+valueSql);

assetService.saveAA(sql+colSql+valueSql);

}

}

}

}catch(Exception e) {//TODO Auto-generated catch block

e.printStackTrace();

}return null;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值