/**

* 导入文件Action;
*/
private File excelFile;
// 保存原始文件名
private String excelFileFileName;
// 保存原始文件名
private String importResult;

// 将Excel文件解析完毕后信息存放到这个User对象中
private ExcelWorkSheet<TabUser> excelUserSheet;

/**
* 文件导入

* @return
*/
@Action(value = "importStuUser", results = { @Result(name = "success", location = "/view/student/queryStu/stuGrid.jsp") })
public String importStuUser() {
  try {
    Workbook workbook = createWorkBook(new FileInputStream(excelFile));

    if (roleType.equals("a")) {
      Sheet sheet = workbook.getSheetAt(0);

      excelUserSheet = new ExcelWorkSheet<TabUser>();

      Row firstRow = sheet.getRow(0);
      Iterator<Cell> iterator = firstRow.iterator();

      List<String> cellNames = new ArrayList<String>();
      while (iterator.hasNext()) {
        cellNames.add(iterator.next().getStringCellValue());
      }
      excelUserSheet.setColumns(cellNames);
      for (int i = 0; i < sheet.getLastRowNum(); i++) {
        Row row = sheet.getRow(i);
        TabRole tabRole = studentService.queryRoleByType(roleType);
        TabUser tabUser = new TabUser();
      if (row.getCell(0).getNumericCellValue() != 0) {
        tabUser.setUserId((int) row.getCell(0).getNumericCellValue());
      } else {
        throw new Exception();
      }
      tabUser.setUserCode(row.getCell(1).getStringCellValue());
      tabUser.setUserName(row.getCell(2).getStringCellValue());
      tabUser.setUserPassword(row.getCell(3).getStringCellValue());

      excelUserSheet.getData().add(tabUser);
      studentService.saveUser(tabUser);

      studentService.saveUserAndRole(tabUser, tabRole);
      }
    } else if (roleType.equals("t")) {
      Sheet sheet = workbook.getSheetAt(0);

      excelUserSheet = new ExcelWorkSheet<TabUser>();

      Row firstRow = sheet.getRow(0);
      Iterator<Cell> iterator = firstRow.iterator();

      List<String> cellNames = new ArrayList<String>();
    while (iterator.hasNext()) {
      cellNames.add(iterator.next().getStringCellValue());
    }
      excelUserSheet.setColumns(cellNames);
    for (int i = 0; i < sheet.getLastRowNum(); i++) {
      Row row = sheet.getRow(i);
      TabRole tabRole = studentService.queryRoleByType(roleType);
      TabUser tabUser = new TabUser();

      if (row.getCell(0).getNumericCellValue() != 0) {
        tabUser.setUserId((int) row.getCell(0).getNumericCellValue());
      } else {
        throw new Exception();
      }
        tabUser.setUserCode(row.getCell(1).getStringCellValue());
        tabUser.setUserName(row.getCell(2).getStringCellValue());
        tabUser.setUserPassword(row.getCell(3).getStringCellValue());

        excelUserSheet.getData().add(tabUser);
        studentService.saveUser(tabUser);
        studentService.saveUserAndRole(tabUser, tabRole);
      }
    } else if (roleType.equals("s")) {
      Sheet sheet = workbook.getSheetAt(0);

      excelUserSheet = new ExcelWorkSheet<TabUser>();

      Row firstRow = sheet.getRow(0);
      Iterator<Cell> iterator = firstRow.iterator();

      List<String> cellNames = new ArrayList<String>();
    while (iterator.hasNext()) {
      cellNames.add(iterator.next().getStringCellValue());
    }
    excelUserSheet.setColumns(cellNames);
    for (int i = 0; i < sheet.getLastRowNum(); i++) {
      Row row = sheet.getRow(i);
      TabRole tabRole = studentService.queryRoleByType(roleType);
      TabUser tabUser = new TabUser();

      if (row.getCell(0).getNumericCellValue() != 0) {
        tabUser.setUserId((int) row.getCell(0).getNumericCellValue());
      } else {
        throw new Exception();
      }
      tabUser.setUserCode(row.getCell(1).getStringCellValue());
      tabUser.setUserName(row.getCell(2).getStringCellValue());
      tabUser.setUserPassword(row.getCell(3).getStringCellValue());

      excelUserSheet.getData().add(tabUser);
      studentService.saveUser(tabUser);
      studentService.saveUserAndRole(tabUser, tabRole);
      }
    }
    importResult = "ok";
    versionService.updateVersionInformation("user");
    } catch (Exception e) {
      importResult = "fail";
      e.printStackTrace();
    }

   return SUCCESS;
}

private String format = "xls"; 
private String fileName = "导出数据.xls";

/** 导出数据 */
private void exportExcel(OutputStream os) {
  Workbook book = new HSSFWorkbook();
  Sheet sheet = book.createSheet("导出信息");
  Row row = sheet.createRow(0);
  row.createCell(0).setCellValue("userId");
  row.createCell(1).setCellValue("userCode");
  row.createCell(2).setCellValue("userName");
  row.createCell(3).setCellValue("userPassword");

  if (roleType.equals("a")) {
    reports = studentService.queryUserByType(roleType);

    for (int i = 0; i < reports.size(); i++) {
      TabUser tabUser = reports.get(i);
      row = sheet.createRow(i);
      row.createCell(0).setCellValue(tabUser.getUserId());
      row.createCell(1).setCellValue(tabUser.getUserCode());
      row.createCell(2).setCellValue(tabUser.getUserName());
      row.createCell(3).setCellValue(tabUser.getUserPassword());
    }

   } else if (roleType.equals("t")) {
   reports = studentService.queryUserByType(roleType);

   for (int i = 0; i < reports.size(); i++) {
    TabUser tabUser = reports.get(i);
    row = sheet.createRow(i);
    row.createCell(0).setCellValue(tabUser.getUserId());
    row.createCell(1).setCellValue(tabUser.getUserCode());
    row.createCell(2).setCellValue(tabUser.getUserName());
    row.createCell(3).setCellValue(tabUser.getUserPassword());
   }

  } else if (roleType.equals("s")) {
    reports = studentService.queryUserByType(roleType);

    for (int i = 0; i < reports.size(); i++) {
      TabUser tabUser = reports.get(i);
      row = sheet.createRow(i);
      row.createCell(0).setCellValue(tabUser.getUserId());
      row.createCell(1).setCellValue(tabUser.getUserCode());
      row.createCell(2).setCellValue(tabUser.getUserName());
      row.createCell(3).setCellValue(tabUser.getUserPassword());
    }
  }

  try {
    book.write(os);
  } catch (Exception ex) {
    ex.printStackTrace();
  }
}

@Action(value = "exportStuUser")
public String exportStuUser() throws Exception {

  setResponseHeader();
  try {
    exportExcel(response.getOutputStream());
    response.getOutputStream().flush();
    response.getOutputStream().close();
  } catch (IOException e) {
    e.printStackTrace();
  }
  return null;
}

/** 设置响应头 */
public void setResponseHeader() {
  try {
    response.setContentType("application/msexcel;charset=UTF-8");
    response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(this.fileName, "UTF-8"));
    // 客户端不缓存
    response.addHeader("Pargam", "no-cache");
    response.addHeader("Cache-Control", "no-cache");
  } catch (Exception ex) {
    ex.printStackTrace();
  }
}

/**
* 判断导入文件格式;
*/
private Workbook createWorkBook(FileInputStream fileInputStream)throws Exception {
  if (excelFileFileName.toLowerCase().endsWith("xls")) {
    return new HSSFWorkbook(fileInputStream);
  }
  if (excelFileFileName.toLowerCase().endsWith("xlsx")) {
    return new XSSFWorkbook(fileInputStream);
  }
  return null;
}

js部分;

<div class="container">
  <div class="row">
    <div class="col-md-12">
      <%-- 记住这里需要设置enctype="multipart/form-data"--%> 
      <s:form id = "importForm" action="/student/importStuUser.action" method="post" enctype="multipart/form-data"> 
        <input type="hidden" name="roleType" id="roleType" value="a"/>
          导入Excel文件:<s:file id="excelFile" name="excelFile"></s:file> <br/>
        <s:submit value="导入"></s:submit>
      </s:form>
      <s:form name="form1" action="/student/exportStuUser.action" method="post">
        <input type="hidden" name="format" value="xls" />
        <input type="hidden" name="roleType" id="roleTypeSecond" value="a"/>
        <s:submit name="sub" value="导出数据"></s:submit>
      </s:form>

      <div style="margin-left: 40%">
        <button class="ats" roleType="a">admin</button>&nbsp;&nbsp;&nbsp;&nbsp;

        <button class="ats" roleType="t">teacher</button>&nbsp;&nbsp;&nbsp;&nbsp;

        <button class="ats" roleType="s">student</button>
      </div>

    </div>

  </div>

</div>

<s:if test="importResult=='ok'">
  <script>
    alert("文件导入成功!");
  </script>
</s:if>
<s:elseif test="importResult=='fail'">
  <script>
    alert("导入文件存在错误或空,请核对后再导入!");
  </script>
</s:elseif>

<script type="text/javascript">
  var roleType = 'a';
  $(function(){

    $(".ats").click(function(){
      roleType = $(this).attr("roleType");
    $("#roleType").val(roleType);
    $("#roleTypeSecond").val(roleType);

    if(!$("#gridTable_ilcancel").hasClass('ui-state-disabled')){
      $("#gridTable_ilcancel").trigger("click");
    }
    $("#gridTable").jqGrid("clearGridData");
    $.ajax({
      type: 'POST',
      url: "${pageContext.request.contextPath }/student/queryStu.action",
      data: {
        type: 'json',
        roleType:roleType
      },
      success: function(data) {
        for ( var i = 0; i <= data.length; i++){
          $("#gridTable").jqGrid('addRowData', i + 1, data[i]);
        }

      }
    });

  });

});

按照TYPE的文件导入导出功能的更多相关文章

  1. Laravel Excel 实现 Excel-CSV 文件导入导出功能

    Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...

  2. Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...

  3. 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出  ...

  4. postman 测试Excel文件导入导出功能

    1.导入的测试方法 选择form-data,key值填写方法对应的参数,选择File,Value处上传文件即可. 2. 导出的测试方法 在导出文件的时候,响应结果是乱码,然后在测试的时候选择下载,下载 ...

  5. 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...

  6. Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...

  7. NodeJs之EXCEL文件导入导出MongoDB数据库数据

    NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...

  8. vue+element-ui的简洁导入导出功能

    1.前段后台管理系统中数据展示一般都是用表格,表格会涉及到导入和导出;原生js导出excel2.导入是利用element-ui的Upload 上传组件; <el-upload class=&qu ...

  9. vue + element-ui实现简洁的导入导出功能

    1.安装ElementUI模块 cnpm install element-ui -S 2.在main.js中引入 import ElementUI from 'element-ui' import ' ...

随机推荐

  1. SqlHelper中IN集合场景下的参数处理

    我手头有个古老的项目,持久层用的是古老的ADO.net.前两天去昆明旅游,其中的一个景点是云南民族村,通过导游介绍知道了一个古老的民族——基诺族,“基”在这个族内代表舅舅,“基诺”意为“跟在舅舅后边” ...

  2. 【Win 10 应用开发】手写识别

    记得前面(忘了是哪天写的,反正是前些天,请用力点击这里观看)老周讲了一个14393新增的控件,可以很轻松地结合InkCanvas来完成涂鸦.其实,InkCanvas除了涂鸦外,另一个大用途是墨迹识别, ...

  3. Python遇到字符编码出问题的一个相对万能的办法

    在使用Python做爬虫的过程中,经常遇到字符编码出问题的情况. UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' ...

  4. 【原】objc_setAssociatedObject和objc_getAssociatedObject

    本文转载请注明出处--polobymulberry-博客园 两个函数名称中都有associate,意思是关联,这里的关联表示的是一种 从属关系,即有一个关联者和被关联者,我们说NSArray的对象ar ...

  5. 定时管理器框架-Task.MainForm

    入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...

  6. springMVC+ajax 文件上传 带进度条

    前端代码: <form id= "uploadForm"> <p >指定文件名: <input type="text" name= ...

  7. Hibernate(4)——主键生成策略、CRUD 基础API区别的总结 和 注解的使用

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: hibernate的主键生成策略 UUID 配置的补充:hbm2ddl.auto属性用法 注解还是配置文件 h ...

  8. HTML5 学习总结(三)——本地存储

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  9. RAC 主库配置单实例ADG

    1.主库准备工作 2.物理备库准备工作 3.创建物理备库 写在前面: 最终实现环境:11.2.0.4版本 2节点RAC + 1节点DG 本文旨在弄清楚整个搭建过程中涉及到的基础概念: 本文安装maxi ...

  10. 简单实用的进度条加载组件loader.js

    本文提供一个简单的方法实现一个流程的进度条加载效果,以便在页面中可以通过它来更好地反馈耗时任务的完成进度.要实现这个功能,首先要考虑怎样实现一个静态的进度条效果,类似下面这样的: 这个倒是比较简单,两 ...