`

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文件的读取以及数据库的写入就实现了
0
0
分享到:
评论

相关推荐

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

    在本项目中,"struts1 poi Excel批量导入支持xls和xlsx"是一个基于Struts1和POI实现的功能,它允许用户批量导入Excel数据,无论是旧版的.xls格式还是较新的.xlsx格式。 首先,我们需要了解Apache POI的基本用法。...

    Struts2数据库数据导入导出

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

    Struts2 Excel导入导出数据

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

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

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

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

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

    struts2Ecxel导入导出

    在Struts2中实现Excel的导入和导出功能,可以帮助用户处理大量的数据,例如批量导入数据库,或者允许用户下载数据为Excel格式进行分析。下面我们将深入探讨Struts2中Excel导入导出的关键知识点。 一、Apache POI库 ...

    struts2 Excel导入数据库

    总结,这个项目展示了如何结合Struts2的MVC架构、Apache POI的Excel处理能力和JDBC的数据库操作,实现从Excel文件批量导入数据到SQL Server 2000数据库的功能。这个过程涉及文件上传、数据读取、数据库交互等多个...

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

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

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

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

    java struts 把数据导入excel

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

    struts导入excel

    在这个场景下,我们讨论的是如何在Struts框架下实现Excel的导入,并使用jxl库进行解析。 jxl库是Java中广泛使用的处理Excel文件的第三方库,它可以读取、写入和修改Excel文件。下面我们将深入探讨这两个主题:...

    Struts2+POI3.7做excel导入

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

    java实现Excel导入导出

    Java 实现 Excel 导入导出 ...在 Struts2+Spring 框架中实现 Excel 导入导出需要使用 POI 库来读取和写入 Excel 文件中的数据,并对数据进行处理。使用 POI 库可以简化 Excel 文件的操作,并提高程序的性能。

    struts2 poi 导入xls xlsx 绝对兼容

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

    struts2+poi实现excel文件的导出

    Struts2 和 Apache POI 的整合允许开发者轻松地实现在 Web 应用程序中导出 Excel 文件的功能。Apache POI 是一个 Java 库,它提供了处理 Microsoft Office 格式(如 .xls 和 .xlsx)的能力,包括创建、读取和修改 ...

    Struts2导入

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

    eclipse和mysql+strust2实现excel数据的导入导出完整代码

    在IT行业中,数据的导入导出是常见的...以上就是使用Eclipse、MySQL和Struts2实现Excel数据导入导出的基本流程和关键知识点。实际操作中,你还需要结合提供的完整代码进行理解和学习,以便更好地掌握这个功能的实现。

    java excel导入数据库/java excel导入

    struts+hibernate实现excel导入数据库 注意:Excel导入是指读服务器端的数据,也就是说,如果想用客户端的Excel是需要把Excel文件先上传到服务器上的,然后再导入,我也是前几天才发现的。

    Poi 读写Excel 合并ExcelSheet Struts2实现

    本篇文章将详细介绍如何利用Apache POI与Struts2来实现Excel的读写以及合并多个Excel工作表。 首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF格式(.xls)和新版本的OOXML格式(.xlsx)。要...

Global site tag (gtag.js) - Google Analytics