日期:2014-05-20  浏览次数:20644 次

excl数据导入到数据库中
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