/**

* 导入文件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. 大数据之Oozie——源码分析(一)程序入口

    工作中发现在oozie中使用sqoop与在shell中直接调度sqoop性能上有很大的差异.为了更深入的探索其中的缘由,开始了oozie的源码分析之路.今天第一天阅读源码,由于没有编译成功,不能运行测 ...

  2. fir.im Weekly - APP 性能监测优化 二三事

    每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...

  3. WCF学习之旅—TcpTrace工具(二十五)

    前面的几篇文章,我们学习了怎么开发WCF应用程序与服务,也学习了如何进行WCF的配置.对于Web Service与WCF服务应用,服务端与客户端的通信是通过收发SOAP Message进行,我们如何有 ...

  4. 【.NET深呼吸】Zip文件操作(2):动态生成Zip文档

    通过前面一篇烂文的介绍,大伙儿知道,ZipArchive类表示一个zip文档实例,除了用上一篇文章中所列的方法来读写zip文件外,还可以直接通过ZipArchive类,动态生成zip文件. 文件流操作 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发

    系列目录 前言: 有些园友经常问如何正确快速开发,但是我告诉你没有什么帮助文档比自己动手做更加实在,不用代码生成器 这一节专门抽了些时间来非常非常详细演示这个框架的数据流,废话不多说,现在开始!下面看 ...

  6. PHP实现查询Memcache内存中的所有键与值

    使用Memcache时,我们可以用memcache提供的get方法,通过键查询到当前的数据,但是有时候需要查询内存中所有的键和值,这个时候可以使用下面的代码实现: <?php /** * Cre ...

  7. ASP.NET Core 中文文档 第二章 指南(4.8)添加新的字段

    原文 Adding a New Field 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).高嵩(Jack) 在这个章节你将使用 Entity Framework ...

  8. 微信小程序基础入门

    准备 Demo 项目地址 https://github.com/zce/weapp-demo Clone or Download(需准备GIT环境) $ cd path/to/project/root ...

  9. 基于 Cmd MarkDown 的 markdown 语法学习

    首先我要打一个属于干货的广告:CmdMarkDown 是非常好用的markdown编辑器软件,支持全平台,由作业部落出品,分为客户端与WEB端两种使用场景. 本篇博客学习的markdown语法都是基于 ...

  10. C# - Networkcomms

    来自英国的用C#语言编写的开源的TCP/UDP网络通信框架,简单方便,性能稳定. 参考: NetworkComms官网:  NetworkComms通信框架中文网: 介绍开源的.net通信框架: Ne ...