excl数据导入到数据库中 但是excl中存放的数据跟数据库中的数据不一样的
这样的话要怎么解决这个问题啊?
具体点的方法
谢谢了啊
------解决方案--------------------
利用JXL或者POI将excel数据解析出来,然后按照你的数据映射办法处理数据,然后用JDBC将数据插入到数据库当中
------解决方案--------------------
一般excel导数据会先建一个临时表,先把excel的数据导入临时表!后面你就可以sql操作了
------解决方案--------------------
数据类型不一样,就在解析的时候转换,给你一点思路
- Java code
//解析CY02,CY08,CY09,CY11,CY13,CY16,CY17工作表 private void resolveCyFirstSet(Sheet sheet,CySheets cySheet,Session session,int startColumn,int endColumn) throws Exception{ for(int i=startColumn;i<=endColumn;i++){ Cell[] cells = sheet.getRow(i); CyFirstSet set1 = new CyFirstSet(); set1.setItem(cells[0].getContents().trim()); set1.setRowNum(getRowNum(cells[1].getContents().trim())); set1.setThisMonth(cells[2].getContents().trim()); set1.setSum(cells[3].getContents().trim()); set1.setSheet(cySheet); session.save(set1); if(cells.length==8){ CyFirstSet set2 = new CyFirstSet(); set2.setItem(cells[4].getContents().trim()); set2.setRowNum(getRowNum(cells[5].getContents().trim())); set2.setThisMonth(cells[6].getContents().trim()); set2.setSum(cells[7].getContents().trim()); set2.setSheet(cySheet); session.save(set2); } if(cells.length==12){ CyFirstSet set3 = new CyFirstSet(); set3.setItem(cells[8].getContents().trim()); set3.setRowNum(getRowNum(cells[9].getContents().trim())); set3.setThisMonth(cells[10].getContents().trim()); set3.setSum(cells[11].getContents().trim()); set3.setSheet(cySheet); session.save(set3); } } }
------解决方案--------------------
我的思路是: 第一步:先解析你的excel文件也就是获取每个cell的内容
第二步:在保存到数据库中的时候获取excel中cell里面的内容。
难点:获取excel中的数据组装成自己想要的数据可能要花一点时间处理一下,因为可能要组装成List