文件的导入

jsp:
   <s:form action="import.action" method="post" enctype="multipart/form-data" theme="simple">
<table border="1">
<tr>
<td>文件上传</td>
</tr>
<tr>
<td>
<s:file name="uploadFile" label="文件位置" size="80"/>
</td>
</tr>
<tr><td>
<s:submit value="submit"></s:submit>
<s:reset value="reset"></s:reset>
</td></tr>
</table>
</s:form>


action:上传文件的文件如果为uploadFile,那么文件名一定要为uploadFileFileName,也就是在文件后加入FileName,不然不能识别

package excl;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.struts2.ServletActionContext;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import test.BaseAction;
import test.User;

public class Import extends BaseAction{
private static final String SUCCESS = "success";
private File uploadFile=null;
private String uploadFileFileName=null;


public String loadRoleFile() {
String directory="/upload/role";
String targetDirectory=
ServletActionContext.getServletContext().getRealPath(directory);
String file=targetDirectory+"\\"+uploadFileFileName;
//生成上传的文件对象
File target = new File(file);
//如果文件已经存在,则删除源文件
if(target.exists()){
target.delete();
}
System.out.println(uploadFile);
System.out.println(uploadFileFileName);
//复制file对象,实现上传
try {
FileUtils.copyFile(uploadFile,target);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

List roleList = new ArrayList();

try {

FileInputStream fi = new FileInputStream(target);
Workbook wb = new HSSFWorkbook(fi);
Sheet sheet = wb.getSheetAt(0);
int rowNum = sheet.getLastRowNum()+1;
for(int i=1;i<rowNum;i++){
User user = new User();
Row row = sheet.getRow(i);
int cellNum = row.getLastCellNum();
for(int j=0;j<cellNum;j++){
Cell cell = row.getCell(j);
String cellValue=null;
switch(cell.getCellType()){
//判断 excel单元格内容的格式,并对其进行转换,以便插入数据库
case 0:cellValue=String .valueOf((int)cell.getNumericCellValue());break;
case 1 : cellValue = cell.getStringCellValue(); break;
case 2 : cellValue = String.valueOf(cell.getDateCellValue()); break;
case 3 : cellValue = ""; break;
case 4 : cellValue = String.valueOf(cell.getBooleanCellValue()); break;
case 5 : cellValue = String.valueOf(cell.getErrorCellValue()); break;
}
switch(j){//通过列数来判断对应插如的字段
case 0 : user.setId(Integer.parseInt(cellValue));break;
case 1 : user.setPassword(cellValue);break;
case 2 : user.setUsername(cellValue);break;
}
}
roleList.add(user);
}
} catch (IOException e) {
e.printStackTrace();
}
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = null;
try {
tx=null;
tx=session.beginTransaction();
if(roleList.size()>0){
int roleNum=roleList.size();
for(int i=0;i<roleNum;i++){
session.save(roleList.get(i));
}
tx.commit();
}
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
return SUCCESS;
}

public String getUploadFileFileName() {
return uploadFileFileName;
}


public void setUploadFileFileName(String uploadFileFileName) {
this.uploadFileFileName = uploadFileFileName;
}



public File getUploadFile() {
return uploadFile;
}
public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}

}



[color=red]1:导入导出jar包的区别‘
2: private File uploadFile=null;
private String uploadFileFileName=null;

为什么不加“=null”值就传不进来

3:String directory="/upload/role";
String targetDirectory=
ServletActionContext.getServletContext().getRealPath(directory);

--》targetDirectory = D:\lxq\zhuanyi\jar+js\apache-tomcat-5.5.23\webapps\TinyBee\upload\role


[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值