`

struts2导入excel表

 
阅读更多
除Struts2必须的jar包外,还需要jar包:poi-3.7-beta-20100620.jar

首先是jsp代码实现上传:
     <body>
    <s:form id="form1" name="form1" action="roleFileUpload.action" method="post" enctype="multipart/form-data" theme="simple">
<table width="80%" border="1" align="center" class="DB_table">
  <tr>
    <td colspan="99" align="left">文件上传</td>
  </tr>
  <tr>
    <td colspan="99" id="more">
      <s:file name="uploadFile" label="文件位置" size="80"/>
    </td>
  </tr>
  <tr>
    <td colspan="99" align="right">
<s:submit value="上传"></s:submit>
<s:reset value="重置"></s:reset>
    </td>
  </tr>
        </table>
[/align]
    </s:form>
  </body>

其次是Struts.xml配置文件:
<action name="roleFileUpload" class="roleFileAction" method="loadRoleFile">
    <result name="success">/page/role/roleallinput.jsp</result>
    <result name="input">/page/role/roleallinput.jsp</result>
</action>

然后是Action类实现:
public class RoleFileUploadAction extends ActionSupport{

private File uploadFile;
private String uploadFileFileName;
private FileLoadDao fileLoadDao;
private RoleDao roleDao;

public File getUploadFile() {
return uploadFile;
}
public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}
public String getUploadFileFileName() {
return uploadFileFileName;
}
public void setUploadFileFileName(String uploadFileFileName) {
this.uploadFileFileName = uploadFileFileName;
}

public FileLoadDao getFileLoadDao() {
return fileLoadDao;
}
public void setFileLoadDao(FileLoadDao fileLoadDao) {
this.fileLoadDao = fileLoadDao;
}

public RoleDao getRoleDao() {
return roleDao;
}
public void setRoleDao(RoleDao roleDao) {
this.roleDao = roleDao;
}
@Override
public void validate() {
super.validate();
}

public String loadRoleFile(){

String directory = "/upload";
String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory);
//生成上传的文件对象
File target = new File(targetDirectory,uploadFileFileName);
//如果文件已经存在,则删除原有文件
if(target.exists()){
target.delete();
}
//复制file对象,实现上传
try {
FileUtils.copyFile(uploadFile, target);

} catch (IOException e) {
e.printStackTrace();
}
loadRoleInfo();
return SUCCESS;
}

/**
* 把Excele表读出的数据,组装成一个List,统一导入数据库
* @param uploadFileFileName
*/
public void loadRoleInfo(){

String directory = "/upload";
String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory);
File target = new File(targetDirectory,uploadFileFileName);
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++){
PtRoleInfo ptRoleInfo = new PtRoleInfo();
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 : ptRoleInfo.setRoleId(cellValue);break;
case 1 : ptRoleInfo.setRoleName(cellValue);break;
case 2 : ptRoleInfo.setDeil(cellValue);break;
}
}
roleList.add(ptRoleInfo);
}
                  for(PtRoleInfo pt:roleList){
                    fileLoadDao.roleInfotoDB(pt);

                 }
     }catch(IOException e){
e.printStackTrace();
}
}

}
   最后在roleInfoToDB方法中需要使用‘事务Transaction’来进行批量插入,确保插入失败的能完全回滚。这样Excel文件的读取以及数据库的写入就实现了
分享到:
评论

相关推荐

    Struts2 Excel导入导出数据

    本教程将深入探讨如何利用Struts2实现从Oracle数据库导出数据到Excel,以及如何将Excel文件中的数据导入到Oracle。 首先,我们需要了解Oracle数据库的基础知识。Oracle是世界上最广泛使用的商业关系型数据库管理...

    java struts 把数据导入excel

    java struts 把数据导入 excel java struts 把数据导入 excel java struts 把数据导入 excel

    struts2整合apache的jxl导入导出excel表格

    Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...

    Struts2+Excel导入功能 完整美运行有JAR包

    在Struts2中实现Excel导入功能,可以让用户上传Excel文件,然后在服务器端进行数据处理,例如存储到数据库或者进行数据分析。 在描述中提到的“完整美运行有JAR包”,意味着这个压缩包可能包含了所有必要的库文件,...

    struts1 poi Excel批量导入支持xls和xlsx-源码java

    在导入Excel数据时,我们通常会创建一个Workbook对象,然后通过Sheet和Row对象访问工作表和行,最后通过Cell对象读取或写入单元格数据。 批量导入的过程通常包括以下步骤: 1. **文件上传**:在Struts1框架中,...

    struts2 Excel导入数据库

    在这个场景中,我们将探讨如何使用Struts2和POI将Excel数据导入到SQL Server 2000数据库。 首先,我们需要理解Apache POI的基本概念。POI提供了一组API来读取、写入和操作Excel文件(.xls或.xlsx格式)。核心组件...

    Struts2 poi动态导入导出Excel源码示例

    首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类来处理用户请求。这个Action类会有一个方法,专门处理导入或导出Excel...

    struts2Ecxel导入导出

    这个Action需要定义两个方法:一个用于导出Excel,另一个用于导入Excel。导出通常是一个HTTP响应,返回一个带有Content-Disposition头的流,指示浏览器保存或打开文件。导入则需要读取上传的文件,并进行解析。 三...

    struts导入excel

    在处理用户上传文件时,Struts 提供了丰富的功能,其中包括导入Excel数据。Excel文件因其格式规范、易读写的特点,常被用于数据交换和存储。在这个场景下,我们讨论的是如何在Struts框架下实现Excel的导入,并使用...

    Struts2导入

    本知识点主要关注如何在Struts2框架中实现数据导入功能,特别是从Excel文件中导入数据。 首先,我们需要了解Struts2的核心组件和工作流程。Struts2框架通过Action类处理HTTP请求,Action类是业务逻辑的入口点。在...

    struts2 poi 导入xls xlsx 绝对兼容

    以上就是关于"Struts2 poi 导入xls xlsx 绝对兼容"的相关知识点,通过Struts2和Apache POI的结合,开发者可以轻松地在Java Web应用中处理Excel文件,实现数据的导入和导出功能,提高工作效率。在实际项目中,可以...

    Struts2数据库数据导入导出

    运用struts2将数据库中的数据导入和导出,同时会用到poi的jar包

    基于struts2及poi实现的导入功能

    总结来说,"基于Struts2及POI实现的导入功能"是一个常见的Java Web开发场景,它利用Struts2的请求处理和文件上传能力,结合Apache POI的Excel文件处理功能,实现了从Excel文件高效地导入数据到Web应用中的功能。...

    Struts2+POI3.7做excel导入

    在本项目中,“Struts2+POI3.7做excel导入”意味着我们将利用Struts2的文件上传功能结合POI库,实现用户从网页上选择Excel文件并将其数据导入到系统中的功能。 首先,我们需要在Struts2的配置文件(struts.xml)中...

    S2SH导入excel表

    【S2SH框架导入Excel详解】 S2SH框架,即Struts2、Spring和Hibernate的组合,是Java Web开发中的经典MVC架构。在S2SH框架中进行Excel导入功能,可以帮助用户方便地将大量数据从Excel文件导入到数据库中,提高数据...

    java数据导入到Excel表

    本文将详细解析如何使用Java将数据导入到Excel表格中,具体涉及Struts2框架下的一个示例代码片段,以及相关的关键知识点。 ### Java数据导入到Excel表 Java中实现数据导出至Excel主要依赖于第三方库,其中较为流行...

    struts2 poi,jxl向excel表中插入记录源代码

    这个项目的核心功能是允许用户通过前端界面提交数据,然后这些数据会被Struts2的Action处理,并使用POI或JXL库写入到指定的Excel文件中。为了实现这一功能,你需要理解以下几个关键知识点: 1. **Struts2 Action**:...

    struts2数据导入导出

    导入Excel数据的基本流程如下: 1. **文件上传**:使用Struts2的文件上传功能将Excel文件上传至服务器。 2. **文件解析**:使用POI库读取并解析上传的Excel文件。 3. **数据存储**:将解析后的数据保存到数据库或...

    Poi动态导入导出Excel基于Struts2 Hibernate Spring源码工程实例

    1.本动态导入导出Excel工程导入Eclipse即可用行,支持所有版本的Excel导入导出。...2.程序使用Struts2+POI+SQLSever(SSH即Struts2+Hibernate+Spring)实现Excel动态数据导入和导出,压缩包内含程序源码文件。

Global site tag (gtag.js) - Google Analytics