请问我现在想用户指定本地的一个.xls文件,确实后直接将此文件的内容导入oracle数据库,请问应该怎么做啊

解决方案 »

  1.   

    学习下jxl
    http://blog.csdn.net/zxingchao2009/archive/2010/11/30/6046555.aspx
      

  2.   

    这是我博客中我写的一个例子,相关jar在我的资源中,自己去下载吧,不要资源分。
    这是文章地址:
    http://blog.csdn.net/wgw335363240/archive/2010/06/13/5667733.aspx
      

  3.   


    哦,我现在用的是poi,思路跟你这个差不多,不过我现在想问下,就是我页面上用的是一个file控件,用户是直接选择一个excel表,点击确定跳入一个action,我想问下action如何获取这file类型的对象。或者是用别的什么方法,请指教
      

  4.   

    你用了file控件 假设name为 file
    在action 从request.getParameter("file");获取就行了
    另外POI对EXCEL 解析分03后和07后版本 不同版本用的解析类不一样
      

  5.   

    你也是用户通过file控件自己选择打开的excel表,然后直接上传到数据库吗?给段代码研究研究把
      

  6.   

    楼主,我也是用的POI导入。。
     我的做法是先利用文件上传,把选中的excel文件上传到服务器上的某个固定文件夹。
    再利用POI读取excel文件存入数据库。。再将服务器上的这个上传文件删除。
      

  7.   

    额、
    在action 用request.getParameter("file");获取file文件不行吧,request能接收到文件流?我看不行。楼主可以试试FileUpload来获取
    我也写过类似功能。代码就不粘了吧,也不难,思路就是上传文件先保存到服务器,获得文件保存路径,用jxl读取xls数据然后在写入到数据库。就ok了。
      

  8.   

    顶七楼了,只不过他用的是POI 个人感觉没有jxl方便吧...楼主自便啦。
      

  9.   

    uploadedFile.getInputStream():服务器也能获取客户端的输入流吧?POI读取不是问题,DOC写的很详细,难点是导入程序的结构设计,比如可以方便的新加入一个新模块的导入;还有就是用户输入的验证和表格内容类型转换问题吧。
      

  10.   

    获取请求流中的file 附件
    public static Map<String,Object> parseMultipartRequest(
    HttpServletRequest request,
    long fileSizeMax,
    int fileSizeThreshold,
    String fileRepositoryPath) { DiskFileUpload dfu = new DiskFileUpload();
    dfu.setSizeMax(fileSizeMax);
    dfu.setSizeThreshold(fileSizeThreshold);
    dfu.setRepositoryPath(fileRepositoryPath); HashMap<String, Object> values = new HashMap<String, Object>();
    try {
    List formItems = dfu.parseRequest(request);
    Iterator iterator = formItems.iterator();
    while (iterator.hasNext()) {
    FileItem formItem = (FileItem)iterator.next();
    if (formItem.isFormField()) {
    values.put(formItem.getFieldName(), formItem.getString("GBK"));
    } else if (!StringUtils.isEmpty(formItem.getName())){
    values.put(formItem.getFieldName(), formItem);
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    } return values;
    }在map 里取到file
    Map <String,Object> fileImport = parseMultipartRequest();
    FileItem phoneExcel = (FileItem)( fileImport.get("File"));