前两章简单的介绍了Uploadify上传插件的基本使用和相关的属性说明。这一章结合Uploadify+ssh框架+jquery实现Excel上传并保存到数据库。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
public
class
UploadAction {
private
File uploadFile;
// 封装文件属性
private
String uploadFileFileName;
// 文件名称
private
String msg;
private
StudentService studentService;
public
String upload() {
try
{
String extName =
""
;
String newFileName =
""
;
// 设置传入的文件的编码
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding(
"utf-8"
);
// 服务器目录
String targetDirectory = ServletActionContext.getServletContext()
.getRealPath(
"/upload"
);
// 获取扩展名
if
(uploadFileFileName.lastIndexOf(
"."
) >=
0
) {
extName = uploadFileFileName.substring(uploadFileFileName
.lastIndexOf(
"."
));
}
// 设置上传文件的新文件名
String nowTime =
new
SimpleDateFormat(
"yyyymmddHHmmss"
)
.format(
new
Date());
// 当前时间
newFileName = nowTime + extName;
// 生成上传的文件对象
File targetFile =
new
File(targetDirectory, newFileName);
// 文件已经存在删除原有文件
if
(targetFile.exists()) {
targetFile.delete();
}
// 复制file对象上传
FileUtils.copyFile(uploadFile, targetFile);
// 上传数据到数据库
msg = studentService.doUploadStudentData(targetFile);
// 删除上传数据
targetFile.delete();
}
catch
(Exception e) {
e.printStackTrace();
msg =
"上传出现异常!"
;
}
return
"success_upload"
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
public
String doUploadStudentData(File file) {
Workbook wb =
null
;
Sheet sheet =
null
;
String value =
null
;
Row row =
null
;
// 表格行
Student stu =
null
;
String msg =
null
;
// 返回消息
int
count =
0
;
// 成功上传条数
try
{
// 将文件转成文件输入流
InputStream is =
new
FileInputStream(file);
// 判断Excel版本
if
(file.getName().toUpperCase().endsWith(
".XLSX"
)) {
wb =
new
XSSFWorkbook(is);
// Excel 2007
}
else
{
wb =
new
HSSFWorkbook(is);
// Excel 2003
}
FormulaEvaluator formulaEvaluator = wb.getCreationHelper()
.createFormulaEvaluator();
// 解析公式结果
// 获得第一个表格页
sheet = wb.getSheetAt(
0
);
System.out.println(sheet.getLastRowNum() +
"记录长度"
);
// 遍历数据
for
(
int
j =
1
; j <= sheet.getLastRowNum(); j++) {
stu =
new
Student();
// 获取某一行
row = sheet.getRow(j);
stu.setId(row.getRowNum());
// 姓名
value = ExcelUtil.getValue(row.getCell(
0
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setName(value);
}
// 年龄
value = ExcelUtil.getValue(row.getCell(
1
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setAge(value.indexOf(value));
}
// 性别
value = ExcelUtil.getValue(row.getCell(
2
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setSex(value);
}
// 家庭住址
value = ExcelUtil.getValue(row.getCell(
3
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setAddress(value);
}
// 联系方式
value = ExcelUtil.getValue(row.getCell(
4
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setPhone(value.indexOf(value));
}
// 兴趣
value = ExcelUtil.getValue(row.getCell(
5
), formulaEvaluator);
if
(StringUtils.isNotBlank(value)) {
stu.setLikedo(value);
}
count++;
this
.studentDao.createOrUpdate(stu);
}
msg =
"数据上传成功,一共上传"
+ count +
"条!"
;
}
catch
(Exception e) {
e.printStackTrace();
msg = e.getMessage();
}
return
msg;
}
|
原创文章,转载请注明: 转载自java开发者
本文链接地址: Uploadify上传Excel到数据库