`
zengshaotao
  • 浏览: 792123 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

上传excel

    博客分类:
  • java
 
阅读更多

public class PRDMAN01000005 extends Action {
    //给操作类型记录相应的操作日志 shaotao.zeng 2011-05-09
    public static final String TXNCODE4LOG = TxncodeConst.TXN_DOC_0021;
    @Override
    public ActionForward safeExecute(ActionMapping actionMapping,
            ActionForm actionForm, HttpServletRequest request,
            HttpServletResponse response) throws DomainException, IOException {

        try {
            String folderPath = "D:/temp";
            newFolder(folderPath);
            String filePath = "D:/temp/temp.xls";
            //必须保证tempz目录层次存在,否则会抛出文件不存在的异常
            //而当只是temp.xls文件不存在时就会新建文件。
            FileOutputStream os = new FileOutputStream(filePath);
            PRDMAN01000005FORM form = (PRDMAN01000005FORM)actionForm;
            FormFile excelfile = form.getExcel();
            String name = excelfile.getFileName();
            String exp = "";
            if(name!=null &&!"".equals(name)){
                exp = name.substring(name.indexOf("."));
                if((".xls".equals(exp))){
                   
                }else{
                    throw new Exception("请选择【.xls】结尾的文件");
                }
            }else{
                throw new Exception("还没选择上传的文件");
            }
            os.write(excelfile.getFileData());
            os.flush();
            os.close();

            FileInputStream is =new FileInputStream(filePath);
            jxl.Workbook rwb = Workbook.getWorkbook(is);
            //获得所有的sheet     
//            Sheet[] sheets = rwb.getSheets();
            //得到第一个sheet
            Sheet rs = rwb.getSheet(0);
            //获得所有的行,包括最开始的第一行
            int rsRows = rs.getRows();
            //获得所有的列
//            int rsCols = rs.getColumns();
//            rsCols = rsCols-4;//最后四个字段系统自动赋值
            String currentOprId = UserSessionInfoUtils.getUserSessionInfo(request.getSession()).getOprId();
            //默认得到的是单实例对象
            TPayformDAO tPayformDAO =(TPayformDAO)ContextUtil.getBean("TPayformDAO");
            for(int i=1;i<rsRows;i++){
                TPayform tPayform = new TPayform();
                //获得i+1行所有的单元格记录
                Cell[] cells = rs.getRow(i);
                int len = cells.length;
                //根据excel模版里实际输入的列数来给对象赋值
                //否则容易出现空指针异常
                //如果只是简单的异常提示信息,可不用作这样的处理
                if(len>=1){
                    String classcode = cells[0].getContents();
                    tPayform.setClasscode(classcode);
                }else{
                    throw new Exception();
                }
                if(len>=2){
                    String computeWay = cells[1].getContents();
                    tPayform.setComputeway(computeWay);
                }else{
                    throw new Exception();
                }

                long age = Long.parseLong(cells[2].getContents());
                tPayform.setAge(BigDecimal.valueOf(age));
               
                String sex = cells[3].getContents();
                tPayform.setSex(sex);
               
                double sing = Double.parseDouble(cells[4].getContents());
                tPayform.setSing(BigDecimal.valueOf(sing));
                                
                          
                String constype = cells[11].getContents();
                tPayform.setConstype(constype);
           
                String levels = cells[12].getContents();
                tPayform.setLevels(levels);
               
                double rate = Double.parseDouble(cells[13].getContents());
                tPayform.setRate((BigDecimal.valueOf(rate)));
               
                double begPre = Double.parseDouble(cells[14].getContents());
                tPayform.setBegPre((BigDecimal.valueOf(begPre)));
               
                double endPre = Double.parseDouble(cells[15].getContents());
                tPayform.setEndPre((BigDecimal.valueOf(endPre)));
               
                long mandeg = Long.parseLong(cells[16].getContents());
                tPayform.setMandeg((BigDecimal.valueOf(mandeg)));
               
                long days = Long.parseLong(cells[17].getContents());
                tPayform.setDays((BigDecimal.valueOf(days)));
                
                          
                String payformfun4 = cells[21].getContents();
                tPayform.setPayformfun4(payformfun4);
                
                           
                tPayformDAO.insert(tPayform);
               
            }

            rwb.close();
            is.close();
            delFile(filePath);
            delFolder(folderPath);

            request.setAttribute("txnSta", Rescode.SUCCESS);
            request.setAttribute("message", RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.SUCCESS));
            request.setAttribute(Constants.PAGE_BACK_URL, request.getContextPath()+actionMapping.getInputForward().getPath());
            log(RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.SUCCESS));
            return actionMapping.findForward("success");
        }catch (Exception e) {
            CommonFunction.passRequestParams(request);
            log(RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.FAILURE),e);
            request.setAttribute("txnSta", Rescode.FAILURE);
            request.setAttribute("errMsg", RescodeMapping.getRescodeDesc(TXNCODE4LOG, Rescode.FAILURE));
            request.setAttribute("error","上传出现未知异常,请联系系统管理员!");
            return actionMapping.getInputForward();
        }
    }
    private void log(String arg0) {
        LOG.ADMININFO("########## PRDMAN01000005(险种费用标准):" + arg0 + " ##########");
    }
    public void log(String arg0 , Throwable arg1){
        LOG.ADMININFO("########## PRDMAN01000005(险种费用标准):"+ arg0 +" ##########" , arg1 );
     }
   
    /*
     * 生成临时目录 shaotao.zeng
     * date 2011-05-30
     */
    public void newFolder(String folderPath) throws Exception {
        try {
          String filePath = folderPath;
          filePath = filePath.toString();
          java.io.File myFilePath = new java.io.File(filePath);
          if (!myFilePath.exists()) {
            myFilePath.mkdir();
          }
        }
        catch (Exception e) {
          e.printStackTrace();
          throw new Exception("新建目录操作出错");
        }
      }

    /*
     * 删除文件 shaotao.zeng
     * date 2011-05-30
     */
      public void delFile(String filePathAndName) throws Exception {
        try {
          String filePath = filePathAndName;
          filePath = filePath.toString();
          java.io.File myDelFile = new java.io.File(filePath);
          myDelFile.delete();
        }
        catch (Exception e) {
          e.printStackTrace();
          throw new Exception("删除文件操作出错");
        }

      }

          /*
         * 删除临时目录 shaotao.zeng
         * date 2011-05-30
         */
      public void delFolder(String folderPath) throws Exception {
        try {
          //删除目录时需要删除该目录下的所有内容
          delFile(folderPath); //删除文件
          String filePath = folderPath;
          filePath = filePath.toString();
          java.io.File myFilePath = new java.io.File(filePath);
          myFilePath.delete(); //删除空文件夹
        }
        catch (Exception e) {
          e.printStackTrace();
          throw new Exception("删除文件夹操作出错");
        }

      }

}

分享到:
评论

相关推荐

    asp上传excel并读取入库

    在ASP(Active Server Pages)开发中,上传Excel文件并读取其内容然后存入数据库是一项常见的任务,尤其在处理大量结构化数据时。这个过程通常包括以下步骤: 1. **文件上传**:ASP中可以使用`&lt;input type="file"&gt;`...

    Vue-Vben-Admin - 自定义上传excel文件弹框组件

    在本案例中,我们关注的是一个自定义的上传Excel文件的弹框组件。这个组件允许用户选择并上传Excel文件,以便进行数据导入或其他需要处理Excel数据的操作。 在 Vue.js 中,组件是构建应用程序的基本单元,它们可以...

    java上传excel并且解析入库

    总结起来,Java实现“上传Excel并解析入库”涉及的关键技术包括文件上传(如Spring MVC的MultipartFile)、Excel解析(如Apache POI)以及数据库操作(JDBC或ORM)。通过熟练掌握这些技术,你可以构建出高效、稳定的...

    向hdfs上传Excel文件.doc

    ### 向HDFS上传Excel文件 #### 背景 在大数据处理场景中,经常需要将Excel文件上传到Hadoop分布式文件系统(HDFS)中进行进一步的数据处理或分析。然而,由于HDFS本身并不直接支持Excel文件格式,通常的做法是先将...

    JSP上传excel及excel插入至数据库的方法.docx

    JSP上传excel及excel插入至数据库的方法 本文主要介绍了JSP上传excel及excel插入至数据库的方法,涉及JSP文件上传及针对excel的读取、写入数据库等操作技巧。下面是详细的知识点解析: JSP文件上传 在HTML页面中...

    ASP程序可以实现上传EXCEL

    标题提到的“ASP程序可以实现上传EXCEL”,意味着我们要讨论的是如何利用ASP来处理用户通过Web界面上传Excel文件的功能。在ASP中,这通常涉及到文件上传控件、服务器端代码以及对上传文件的处理。 首先,让我们了解...

    php上传excel并将excel中的内容插入到数据库中

    用户上传Excel文件后,需要确保文件是安全的(例如,检查文件类型和大小),然后将其保存到服务器的一个特定目录。 3. **读取Excel文件**:使用PHPExcel或PHPSpreadsheet库读取上传的Excel文件。创建一个类实例,...

    解决C#上传Excel文本数字混合不能识别的情况

    本文将深入探讨如何在C#中解决上传Excel文本数字混合不能识别的情况。 ### 解决方案概述 当C#应用程序尝试读取或导入Excel文件中的数据时,若数据单元格内包含文本和数字混合格式(例如,"123abc"),标准的数据...

    mvc 上传excel文件并读取excle内容

    asp.net mvc 上传excel文件并读取excle内容转成DataTable(Spire.Office.3.6.0) 一个需求:将一个Excel文件中的数据导入到数据库中去。 思路:上传一个excel文件,读取该excel文件中数据,转成DataTable(或List),...

    上传excel到SAP内表.doc

    上传excel到SAP内表 在SAP系统中,上传Excel文件内容到内表是一个常见的需求。这种需求可以通过多种方式实现,而本文将介绍其中的一种简单直接的方法。本方法使用ABAP语言编写,通过调用TEXT_CONVERT_XLS_TO_SAP...

    asp.net 上传Excel显示到页面的gridview中,可上传到服务器

    本示例提供了一个批量上传Excel文件并将其数据动态显示在Gridview中的解决方案。以下是对这个过程的详细说明: 首先,我们需要一个ASP.NET页面,其中包含一个FileUpload控件用于选择Excel文件,一个Button控件触发...

    利用apache的poi上传excel

    标题中的“利用apache的poi上传excel”指的是使用Apache POI库来处理Microsoft Excel文件的Java编程实践。Apache POI是一个开源项目,它提供了API来读取、写入和修改MS Office格式的文件,包括Excel(XLS和XLSX)。 ...

    extjs3.2+struts2实现多文件上传excel并插入到数据库

    本项目“extjs3.2+struts2实现多文件上传excel并插入到数据库”是针对这一需求的具体解决方案,利用了ExtJS 3.2前端框架和Struts2后端框架进行开发。 **ExtJS 3.2** 是一个基于JavaScript的富客户端应用框架,提供...

    基于streamlit库写的excel可视化样例,可以上传excel文件,然后对excel的各个标签数据读取

    基于streamlit库写的excel可视化样例, 可以上传excel文件, 然后对excel的各个标签数据读取, 可以基于样例,很轻松的拓展出excel的可视化图表

    ASP中上传EXCEL_再把EXCEL导入到SQL中的例子_带上传功能

    这个例子展示了如何在ASP(Active Server Pages)环境中实现一个功能,让用户能够上传Excel文件,并将其中的数据导入到SQL Server数据库中。ASP是一种经典的服务器端脚本语言,用于创建动态网页。 首先,我们来看`...

    java文件上传和上传excel后并解析出来的小工具

    在这个“java文件上传和上传excel后并解析出来的小工具”中,我们可以探讨以下几个核心知识点: 1. **MultipartFile接口**:在Spring框架中,`MultipartFile`接口用于处理HTTP请求中的多部分文件数据。它提供了读取...

    php上传excel php上传xls代码

    php上传excel php上传xls代码

    php上传excel文件读取数据添加到sql server数据库

    本教程将详细介绍如何使用PHP来上传Excel文件,并将其中的数据批量读取并添加到SQL Server数据库中。 1. **文件上传** - PHP中的`$_FILES`全局变量用于接收上传的文件信息,包括文件名、类型、大小等。 - 使用`...

    ajax上传excel

    下面将详细介绍如何实现“ajax上传excel”以及PHP端接收的流程。 1. **前端准备**: - **HTML**:首先,我们需要一个HTML表单让用户选择要上传的Excel文件。通常,我们会用`&lt;input type="file"&gt;`元素来实现这个...

    用easyui-filebox上传Excel文件(ASP.NET MVC)

    在本文中,我们将深入探讨如何在ASP.NET MVC框架下,利用EasyUI的FileBox组件实现Excel文件的上传功能。EasyUI是一个基于jQuery的用户界面库,提供了丰富的组件,如FileBox,用于处理文件选择和上传操作。而MVC...

Global site tag (gtag.js) - Google Analytics