java/excel上传,解析,导入数据库

原创 2015年11月20日 17:34:10

这篇文章是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中。

------------------------------jsp页面-----------------------------

<script type="text/javascript">

 //点击上传时判断是否选择文件
var fileSizeValidate=function()
 {
  var p1 = document.getElementById("file").value;
  if(p1==""){
   return false;
  }
  return true;
 }
      
 function input(){
  
   if(!fileSizeValidate()){
   alert("请先选择文件!");
   return ;
  }else{
  document.getElementById("inputFile").submit();
 
  }
   
 }

</script>

<s:form action="upload_upExcel.action" method="post" enctype="multipart/form-data" id="inputFile">
  <table >
   <tr>
    <!-- 上传文件标签定义 -->
    <td class="font_colors03"><label>指定导入文件: </label> <s:file
      name="file" id="file"></s:file></td>
    <td><label>
      <input id="upsubmit" type="button" value="导入" onclick="input();"
      style="width:50px;height:25px" />
      
      </label>
      </td>
   </tr>
  </table>
 </s:form>

---------------------------------------------------action-----------------------------------------------

// 上传文件集合
  private File file;
  // 上传文件名集合
  private List<String> fileFileName;

    public String upExcel() throws LogisticException {

               try {
                 if (file != null) {
         InputStream in = new FileInputStream(file);
         String pathString = "D:/upload";
    
         String fileNameString = peopleCode
      + "-"
      + this.getFileFileName().get(0);

    File upLoadFile = new File(pathString, fileNameString);
    System.out.println("导入文件:" + fileNameString);

    OutputStream out = new FileOutputStream(upLoadFile);
    
    byte[] buffer = new byte[1024 * 1024];
    int len = 0;
    while ((len = in.read(buffer)) > 0) {
     out.write(buffer, 0, len);
    }

jieXiExcel(fileNameString);

    in.close();
    out.close();
                 }
           } catch (Exception e) {
   e.printStackTrace();
  }

 /**
   * 解析文件方法
   *
   * @param fileName
   * @return map
   */

  public Map<String, String> jieXiExcel(String fileName) {
   Map<String, String> map = new HashMap<String, String>();
   try {
    // 通过Workbook的静态方法getWorkbook选取Excel文件
    String parhString = "D:/upload";
    Workbook workbook = Workbook.getWorkbook(new File(parhString + "/"
      + fileName));
    // 通过Workbook的getSheet方法选择第一个工作簿(从0开始)
    Sheet sheet = workbook.getSheet(0);
    int rows = sheet.getRows();
    int cols = sheet.getColumns();
    Cell cells[][] = new Cell[cols][rows];
    Date date = null;

    for (int r = 0; r < rows; r++) {
     for (int c = 1; c < cols - 1; c++) {
      cells[c][r] = sheet.getCell(c, r);
      // String value = "";
      String cellVal = "";

      cellVal = cells[c][r].getContents();

      map.put("cells[" + c + "][" + r + "]", cellVal);

     }
    }
    for (int rr = 0; rr < rows; rr++) {
     Backdetail backdetail = new Backdetail();
     backdetail.setSceneType(0);
    ..............

     for (int cc = 1; cc < cols - 1; cc++) {
      String val = map.get("cells[" + cc + "][" + rr + "]");

      if (cc == 1) {
            backdetail.setBackdate(val);
      }
      if (cc == 2) {
       backdetail.setBackscene(val);
      }
      if (cc == 3) {
       backdetail.setInscene(val);
      }
      .............      }

      // System.out.println(map.get("cell["+cc+"]["+rr+"]"));

     }

     // 保存数据 到库
     backDetailImpl.save(backdetail);

    }

    System.out.println("导入数据完成!");
    workbook.close();

   } catch (BiffException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   } catch (Exception e) {
    e.printStackTrace();
   }
   return map;
  }

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Excel文件一键上传并解析导入数据库

文件一键上传 解析excel

Java中上传excel文件并在服务器端读取存入数据库

struts2 ExcelJSPXML工作 Java代码 页面jsp文件  "add" action="/gxtWeb/lvjcontacts/manyConta...
  • pql925
  • pql925
  • 2016-07-29 14:50
  • 2338

JAVA POI上传excel文件到数据库并备份(上)

一、电商系统和办公系统时常会用到Excel的导入与导出,在JAVA代码实现时,通常使用POI来处理,今天用一个demo为大家介绍POI上传excel文件并将数据导入数据库的实现过程。demo是一个js...

poi 上传Excel(2003|2007)到服务器导入数据库

项目需求通过Excel把数据导入数据库,一开始用的jxl,简单完成。后来发下远程下不能导入,给点路径找不到。因为服务器上面没有你路径所说的文件。更改程序:先把Excel上传到服务器,在服务器上读取Ex...

FileUpload上传Excel文件,Aspose导入数据至数据库(web)

第一步:引用:Aspose.Cells.dll 第二步:创建类文件,AsposeExcel.csusing Aspose.Cells; using System; using System.Coll...

上传Excel数据导入到数据库

上传文件导入到数据库 想把上传的文件导入到数据库中,首先要先获取到该文件在服务器中的路径。 controller.java String fileNames = filePath.replace("\...

JavaWeb一个完整的Servlet上传Excel表格使用poi解析至数据库实现(兼容2003,2007)。

完整的估计得等两天,等时间空下来了再写,主要参考以下三篇博客。 参考 http://blog.csdn.net/meng564764406/article/details/52444644 ht...

springMvc 中 Excel批量数据上传,利用POI解析数据保存入数据库 及模板文件下载

1、SpringMVC文件上传,保存后对文件进行解析数据,并保存到数据库 2、SpringMVC文件下载。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)