按照TYPE的文件导入导出功能
/**
* 导入文件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>
<button class="ats" roleType="t">teacher</button>
<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的文件导入导出功能的更多相关文章
- Laravel Excel 实现 Excel-CSV 文件导入导出功能
Laravel Excel 是一款基于 PHPExcel 开发的Laravel框架专用的 Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便. 它的 Github 地址是:https:// ...
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 ...
- postman 测试Excel文件导入导出功能
1.导入的测试方法 选择form-data,key值填写方法对应的参数,选择File,Value处上传文件即可. 2. 导出的测试方法 在导出文件的时候,响应结果是乱码,然后在测试的时候选择下载,下载 ...
- 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1.简介 本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧. Laravel Excel 在 ...
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- vue+element-ui的简洁导入导出功能
1.前段后台管理系统中数据展示一般都是用表格,表格会涉及到导入和导出;原生js导出excel2.导入是利用element-ui的Upload 上传组件; <el-upload class=&qu ...
- vue + element-ui实现简洁的导入导出功能
1.安装ElementUI模块 cnpm install element-ui -S 2.在main.js中引入 import ElementUI from 'element-ui' import ' ...
随机推荐
- 生成任意长度的随机数 JS
1.Math.random().toString(36).substr(2); 结果:ywv6cnpkliahj4tep0 2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- iOS 支持 IPv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网络. 官方文档:https://developer.apple.com/library/mac/documentati ...
- ubuntu14.04安装及web环境的搭建
在进行接下来的工作之前首先得准备一个Ubuntu的启动U盘以及腾出一个至少50G的系统盘(在网上看到有人用20G的,不知道效果怎么样).关于Ubuntu启动U盘大家可以参考这个帖子 http://ti ...
- Linux上oracle精简版客户端快速部署
RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...
- IDEA+weblogic部署运行项目
前段时间再服务器上为了部署一个系统,一直存在各种问题,不过过程中倒是把weblogic的部署掌握地特别熟练,下面就一些主要步骤做个记录:1.自己用的是IDEA,所以打开项目之后需要设置src/main ...
- dicom网络通讯入门(3)
接下来可以进行消息传递了 ,也就是dimse ,再来复习下 什么是dimse .n-set n-create c-echo 这些都是dimse 他们都是属于一种结构的pdu 那就是tf-pdu(传 ...
- EF 在controller 带参数跳转到新的网址
参考文章:http://blog.csdn.net/zhensoft163/article/details/7174661 我用到了这一种方式: 跳转到同一Controller 里面的不同Action ...
- MFC背景透明
# 一: # typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, ...
- SHA-256算法
SHA-.h #ifndef _SHA_256_H #define _SHA_256_H #include<iostream> using namespace std; typedef u ...
- django+mysql学习笔记
这段时间在学习mysql+django的知识点.借此记录以下学习过程遇到的坑以及心得. 使用的工具是navicat for mysql python 2.7.12 mysql-python 1.2.3 ...