按照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 ' ...
随机推荐
- 常用数据库的驱动程序和Url地址
常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc6.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:jd ...
- PowerDesigner(数据建模)使用大全
什么是PowerDesigner 引入百度百科的说法是: power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具.使用它可以分别从概念数据模型(Conceptu ...
- MySQL关于exists的一个bug
今天碰到一个很奇怪的问题,关于exists的, 第一个语句如下: SELECT ) FROM APPLY t WHERE EXISTS ( SELECT r.APPLY_ID FROM RECORD ...
- React学习笔记。
有段时间没写博客了,最近这段时间有点说不出的苦,虽然说年轻的时候该多出去经历些事,但每次找工作东跑西跑,坐公交坐地铁浪费了我太多时间,我感觉到这是一种浪费,对生命的浪费.所以很想尽快找到一份工作,去努 ...
- Vertica参数的设置
注:只是经验值设定,仅供参考. RHEL 6.2 CPU 24 Memory 128G 8节点 1.keep more event logs for dc_tuple_mover_events. ...
- SparkStreaming实现Exactly-Once语义
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 译自:http://blog.cloudera.com/blog/2015/03/exactly ...
- java中异常抛出后代码还会继续执行吗
今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(int index, E element){ i ...
- WinForm构造函数的作用
最近练习C#项目:何问起收藏夹(HoverTreeSCJ),实现编辑网址时,遇到这个问题:比如打开窗口后,要自动显示数据.解决方法:那么可以通过窗体的构造函数传递参数. 比如窗体类: public p ...
- 基础笔记(一):C#编程要点
前言 来源于手中日常摘录的资料和书籍,算是对看过的东西的总结,部分注有阅读心得,也有部分只提出大纲或结论.(备注:本篇文章中大部分要点需要有实际的开发经验,有助于阅读理解.) 目录 const ...
- Spring 实现数据库读写分离
随着互联网的大型网站系统访问量的增高,数据库访问压力方面不断的显现而出,所以许多公司在数据库层面采用读写分离技术,也就是一个master,多个slave.master负责数据的实时更新或实时查询,而s ...