我现在已经做好上传的功能了,上传后的excel文件保存在项目的根目录下。
    求个例子,最好jsp页面也上。

解决方案 »

  1.   

    用jxl或者poi读取excel然后一行一行的用sql插入到表里吧
    jxl和poi的例子百度一下很多
      

  2.   

    以前用jxl读取Excel操作的部分程序,希望对你有用java.io.File f= new java.io.File(filename2);
              jxl.Workbook rwb = Workbook.getWorkbook(f);
          Sheet rs = rwb.getSheet(0);
              String sheetname=rs.getName();
              int rscol=rs.getColumns(); 
              int rsrow=rs.getRows();
      String pn_sn="";
      String pn_name="";
      String pn_plate="";
      String pn_standards="";       for(int i=1;i<rsrow;i++){
                  Cell[] cell=rs.getRow(i);
                  pn_sort=cell[0].getContents().trim();
          pn_sn=cell[1].getContents().trim();
          pn_name=cell[2].getContents().trim();
          pn_standards=cell[3].getContents().trim();
      }
      

  3.   

    这段代码得怎么改才可以?现在的情况是我已经做好上传的功能了,我要让他去读取我那个上传了的xls文件
    package source;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class TestExcel {        /**         * @param args         */        public static void main(String[] args) {                // TODO 自动生成方法存根                Cell cell = null;                String sql = null;                String insertDate = "";                try {                        // 加载postgresql驱动                        Class.forName("org.postgresql.Driver");                        Connection con = DriverManager.getConnection(                                        "jdbc:postgresql://localhost:5432/mydb", "postgres",                                        "postgres");                        // 使用事务。不用也无所谓                        con.setAutoCommit(false);                        Statement smt = con.createStatement();                        // if (smt != null) System.out.println("smt is ok!");                        // 加载excel文件                        InputStream fs = new FileInputStream("data/user.xls");                        // 得到 workbook                        Workbook wb = Workbook.getWorkbook(fs);                        /*                         * 取得sheet,如果你的workbook里有多个sheet 可以利用 wb.getSheets()方法来得到所有的。                         * getSheets() 方法返回 Sheet[] 数组 然后利用数组来操作。就是多次循环的事。                         */                        Sheet sh = wb.getSheet(0);                        // 利用 sheet 的名字做表名创建数据库表。你可以自己规定                        sql = "CREATE TABLE "                                        + sh.getName()                                        + " ("                                        + "name varchar(50),sex varchar(10),age varchar(5),address varchar(30));";                        smt.execute(sql);                        /*                         * 开始循环,取得 cell 里的内容,这里都是按String来取的 为了省事,具体你自己可以按实际类型来取。或者都按                         * String来取。然后根据你需要强制转换一下。                         */                        for (int i = 0; i < sh.getRows(); i++) {                                for (int j = 0; j < sh.getColumns(); j++) {                                        cell = sh.getCell(j, i);                                        if (j != sh.getColumns() - 1)                                                // System.out.print(cell.getContents() + ",");                                                insertDate += "'" + cell.getContents() + "',";                                        else                                                insertDate += "'" + cell.getContents() + "'";                                        // System.out.print(cell.getContents());                                }                                /*                                 * 利用循环取每一行的数据。然后开始构造SQL语句。你可以                                 * 用自己的方法。这个方法我觉得比较偷懒。                                 */                                sql = "INSERT INTO " + sh.getName() + "(name,sex,age,address)"                                                + " VALUES(" + insertDate + ");";                                smt.execute(sql);                                /*这里把 insertDate设置为空。不然 insertData下次                                 * 还会叠加上次的内容。也就失去了我们的目的。                                 */                                insertDate = "";                        }                        /*                         * 提交事务                         */                        con.commit();                        con.close();//关闭数据库连接                        wb.close();//关闭打开的文件,切记。切记                        System.out.println("OK!");                        // System.out.println(insertDate);                        // start sql;                } catch (IOException ex) {                        ex.printStackTrace();                } catch (BiffException ex) {                        ex.printStackTrace();                }                catch (ClassNotFoundException ex) {                        System.out.println("class not found");                } catch (SQLException ex) {                        ex.printStackTrace();                }        }}
      

  4.   

    什么意思 你把他读取EXCEL文件的代码 拿出来就行了
    然后你把读到的值封装成对象 放到集合里面 一次性提交就好了
    excel 分2种格式 03之前是 .xls 07之后是.xlsm
      

  5.   

    网上的例子读取excel文件都是直接指定某盘下的某个excel文件,这样根本没用啊,我要的是它能读取我上传了的那个excel,问题就是怎么让java知道我上传了哪个excel文件。