2 Excel文档导出
response.setContentType(
"application/octet-stream; charset=utf-8");
response.setHeader(
"Content-Disposition",
"attachment; filename=" +
new String(fileName.getBytes(
"utf-8"),
"ISO-8859-1"));
2.1
3 Excel文档导入
3.1
界面:
var htmlStr =
"";
htmlStr +=
'<div style="width:600px;" >';
htmlStr +=
'<div style="display:block; padding-bottom:20px;" align="center" >';
htmlStr +=
'<form id = "userExcelFileFormId" action="/SSMPro/uploadExcel" method="post" >';
htmlStr +=
'<input type="file" id="userExcelFile" name="userExcelFile" onchange="ValidateFileType()" >';
htmlStr +=
' <input type="submit" value="导入" /> ';
htmlStr +=
'</form>';
htmlStr +=
'</table>';
htmlStr +=
'</div>';
htmlStr +=
'</div>';
$.layer({
type :
1,
title :
'导入用户',
area : [
'auto',
'auto' ],
page : {
html : htmlStr
}
});
function ValidateFileType() {
var array =
new Array();
var excelName = $(
"#userExcelFile").val();
array = excelName.split(
".");
var suffix = array[array.length -
1];
if (suffix !=
"xlsx" && suffix !=
"xls") {
alert(
"您选择的不是excel文档,请重新选择");
var file = document.getElementById(
"userExcelFile");
file.value =
"";
}
}
function submitFrom() {
var options = {
beforeSubmit : showRequest,
success : showResponse,
resetForm :
true,
dataType :
'json'
};
$(
"#userExcelFileFormId").submit(
function() {
$(
this).ajaxSubmit(options);
return false;
});
}
function showRequest(){
}
function showResponse(responseText) {
if (responseText.isSuccess ==
true) {
alert(
'导入成功');
window.location =
"/SSMProject/user/userMana";
}
}
@RequestMapping(
"/uploadExcel")
public
void uploadExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map<
String,
Object> resultMap =
new HashMap<>();
try {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Map<
String, MultipartFile> fileMap = multiRequest.getFileMap();
for (Map.Entry<
String, MultipartFile> entry : fileMap.entrySet()) {
MultipartFile file = entry.getValue();
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
List<Map<
String,
Object>> list =
this.readExcel(workbook);
userService.insertData(list);
resultMap.put(
"isSuccess",
true);
}
}
catch (Exception e) {
e.printStackTrace();
resultMap.put(
"isSuccess",
false);
}
Gson gson =
new Gson();
String responseContent = gson.toJson(resultMap);
this.flushResponse(response, responseContent);
}
private List<Map<
String,
Object>> readExcel(Workbook workbook) {
SimpleReadParameter srp =
this.getSimpleReadParameter();
String[] fieldNames = srp.getFieldsId();
int startIndex = srp.getStartIndex();
ExcelUtil excelUtil =
new ExcelUtil();
List<Map<
String,
Object>> list =
new ArrayList<>();
if (workbook !=
null && workbook.getNumberOfSheets() >
0) {
Sheet sheet = workbook.getSheetAt(
0);
List<Map<
String,
Object>> sheetData = excelUtil.readSimple(sheet, startIndex, fieldNames);
if (sheetData !=
null && sheetData.size() >
0) {
list.addAll(sheetData);
}
}
return list;
}
private SimpleReadParameter getSimpleReadParameter() {
SimpleReadParameter simpleReadParameter =
new SimpleReadParameter();
StringBuffer sbBuffer =
new StringBuffer();
sbBuffer.append(
"userChName,").append(
"mobilePhone,").append(
"email,").append(
"userSex,").append(
"userName,")
.append(
"orgId,");
String[] filedNames = sbBuffer.toString().split(
",");
int startIndex =
2;
simpleReadParameter.setFieldsId(filedNames);
simpleReadParameter.setStartIndex(startIndex);
return simpleReadParameter;
}
}
导出
@RequestMapping(
"/exportUserExcel")
public
void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
String fileName =
"";
Map<
String,
Object> param =
this.getParam(request);
Object fileNameObj = param.get(
"fileName");
Date date =
new Date();
SimpleDateFormat sdf =
new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String defaultDate = sdf.format(date);
if (fileNameObj !=
null && !(
"").equals(fileNameObj.toString())) {
String fileChName = fileNameObj.toString();
if (fileChName.endsWith(
".xls") || fileChName.endsWith(
".xlsx")) {
fileChName = fileChName.substring(
0, fileChName.lastIndexOf(
"."));
}
fileName = fileChName + defaultDate;
}
else {
fileName = defaultDate;
}
fileName = fileName +
".xls";
OutputStream outputStream =
null;
try {
outputStream = response.getOutputStream();
Workbook wb =
new HSSFWorkbook();
response.setContentType(
"application/octet-stream; charset=utf-8");
response.setHeader(
"Content-Disposition",
"attachment; filename=" +
new String(fileName.getBytes(
"utf-8"),
"ISO-8859-1"));
this.exprotUserExcel(wb);
wb.write(outputStream);
outputStream.flush();
}
catch (Exception e) {
e.printStackTrace();
if (outputStream !=
null) {
outputStream.close();
}
}
}
private
void exprotUserExcel(Workbook wb) {
SimpleExportParameter parameters =
this.getSimpleExportParamter();
Sheet sheet = wb.createSheet();
ExcelUtil util =
new ExcelUtil();
util.simpleExport(wb, sheet, parameters);
}
private SimpleExportParameter getSimpleExportParamter() {
String filedIds =
"userChName,userSex,mobilePhone,provinceName,cityName,contryName,userBirthday";
String filedName =
"姓名,性别,电话,省份,地市,区县,生日";
String widthsStr =
"20,20,20,20,20,20,20";
List<Map<
String,
Object>> dataList = userService.queryExprotData();
String title =
"千锋员工信息";
String sheetName =
"员工sheet";
String[] ids = filedIds.split(
",");
String[] names = filedName.split(
",");
String[] widths = widthsStr.split(
",");
SimpleExportParameter sep =
new SimpleExportParameter();
sep.setTitle(title);
sep.setTitleEn(sheetName);
sep.setFieldsId(ids);
sep.setFieldsName(names);
sep.setWidths(widths);
sep.setDataList(dataList);
return sep;
}
}