按照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 ' ...
随机推荐
- 气泡 弹出 bootstrap-popover的配置与灵活应用
<script src="/assets/addons/bootstrap-select/bootstrap-select.min.js"></script> ...
- 如何删除webstrom中生成的.idea wrokspace
首先说下遇到的问题,之前一直是通过webstrom来操纵github 以及git ,包括切换,生成分支,pull,push代码,这几天心血来潮 通过git代码进行了一次这些操作,然后当我在gitlab ...
- SQLSERVER聚集索引与非聚集索引的再次研究(下)
SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
系列目录 前言:这是对本文系统一次重要的革新,很久就想要重构数据访问层了,数据访问层重复代码太多.主要集中增删该查每个模块都有,所以本次是为封装相同接口方法 如果你想了解怎么重构普通的接口DAL层请查 ...
- 计算机程序的思维逻辑 (51) - 剖析EnumSet
上节介绍了EnumMap,本节介绍同样针对枚举类型的Set接口的实现类EnumSet.与EnumMap类似,之所以会有一个专门的针对枚举类型的实现类,主要是因为它可以非常高效的实现Set接口. 之前介 ...
- SQL Server中提前找到隐式转换提升性能的办法
http://www.cnblogs.com/shanksgao/p/4254942.html 高兄这篇文章很好的谈论了由于数据隐式转换造成执行计划不准确,从而造成了死锁.那如果在事情出现之前 ...
- 查看当前数据库正在运行的Session
当数据库运行比较缓慢时,我们需要实时查看当前有什么Session在运行,获得信息越完整,对于分析低性能的原因越有帮助.根据之前调优的经历,简单几步分析如下: 1.通过SQL Server内置的Sp_w ...
- Cesium原理篇:Property
之前主要是Entity的一个大概流程,本文主要介绍Cesium的属性,比如defineProperties,Property(ConstantProperty,CallbackProperty,Con ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- struts2工作流程
struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...