`
hanjava
  • 浏览: 32389 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2-excel文件的读取

 
阅读更多
页面:
<input type="file" id="filePath" name="filePath" value="${filePath?if_exists}" title="${action.getText('operator.excelpath')}" class="textbox_css" style="width:500px" />

<input type="button" class="btn" name="btnUpload" value=" ${action.getText("system.board.upload")} " onclick="addOperatorUpload();" />

//文件上传操作
  function addOperatorUpload(){
   /**上传文件不能用href,不然后台myFile拿不到值*/
var filepath=document.getElementById("filePath").value;
if(''==filepath){
alert("请选择要上传的excle文件");
return;
}
document.location.href="${base}/system/operatorBatchManager.action?act=doOther&filePath="+filepath;
}

********************************************************************
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
action:
private String filePath;

/**
* 文件
*/
private File myFile;

// myFileContentType属性用来封装上传文件的类型
private String myFileContentType;

// myFileFileName属性用来封装上传文件的文件名
private String myFileFileName;
//以上get/set方法略
/**
* excel文件读取
*/
public String doOther() throws Exception {

myFile = new File(filePath);
// 获得文件名
String type = myFile.getName();// this.getMyFileFileName();
int i = 0;
while (i != -1) {
// 找到上传文件的类型的位置,这个地方的是'.'
i = type.indexOf(".");
// 截取上传文件的后缀名,此时得到了文件的类型
type = type.substring(i + 1);
}
// 如果是excle文件就开始处理
if ("xls".equals(type) || "xlsx".equals(type)) {
// 获得文件路径
String str_path = myFile.toString();
this.excelDataImportOracle(str_path);
} else {
// 文件类型不对
this.setErrorInfo(getText("info.fileErrorType"));
}
return "addInput";
}


public void excelDataImportOracle(String pathname) throws Exception {
try {
ArrayList<AdminWorkArea> al = this.readExcel(pathname);
// 将数据保存给分页对象返回页面
this.pageInfo.setSearchResult(al);
}


public ArrayList<AdminWorkArea> readExcel(String pathname) {
String cellStr = null;// 单元格,最终按字符串处理
InputStream is = null;
ArrayList<AdminWorkArea> list = new ArrayList<AdminWorkArea>();
try {
is = new FileInputStream(new File(pathname));// 获取文件输入流
HSSFWorkbook workbook = new HSSFWorkbook(is);// 创建Excel2003文件对象
HSSFSheet sheet = workbook.getSheetAt(0);// 取出第一个工作表,索引是0
// 开始循环遍历行,表头不处理,从1开始
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow(i);// 获取行对象
if (row == null) {// 如果为空,不处理
continue;
}

AdminWorkArea o = new AdminWorkArea();

// 循环遍历单元格
for (int j = 0; j < row.getLastCellNum(); j++) {
HSSFCell cell = row.getCell((short) j);// 获取单元格对象
if (cell == null) {// 单元格为空设置cellStr为空串
cellStr = "";
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {// 对布尔值的处理
cellStr = String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {// 对数字值的处理
cellStr = String.valueOf(cell.getNumericCellValue());
} else {// 其余按照字符串处理
cellStr = cell.getStringCellValue();
}
// 下面按照数据出现位置封装到bean中
switch (j) {
case 0: o.setLogin(cellStr);
break;
case 1: o.setName(cellStr);
break;
case 2: o.setAgentSkills(cellStr);
break;
case 4: o.setSubccNo(cellStr);
break;
case 5: o.setVdn(cellStr);
break;
case 6:// 工作组id
o.setGroupId(cellStr);
break;
}
}
// 登录名做为键,保存到map中到时用于增加
map.put(o.getLogin(), o);
list.add(o);// 将excel用户列表放入集合中
}
} catch (Exception e) {
e.printStackTrace();
} finally {// 关闭文件流
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return list;
}

************************************************************
struts.xml文件:
<!-- 批量用户管理-->
<action name="operatorBatchManager" class="com.tempus.fw.operatorBatchAction">
<result name="addInput" type="freemarker">
/WEB-INF/core/pages/system/operatorBatchOpt.ftl
</result>
</action>
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Struts2+Excel导出Demo,测试可用带JAR包

    4. **JXL库使用**: JXL库提供了一系列API,可以创建、修改和读取Excel文件。创建工作簿、工作表,添加行和单元格,设置样式,这些都是通过JXL API完成的。例如,`Workbook`类用于创建工作簿,`Sheet`类表示工作表,...

    Struts2文件流方式导出下载excel、Txt、image图片

    通过上述步骤,我们就可以在Struts2框架下实现文件流方式的下载功能,无论是Excel、TXT还是图片,都能有效地直接返回给浏览器,让客户端进行下载。这种方式既节省了服务器资源,也提高了用户体验。在实际项目中,...

    struts1整合jfreechar,读取EXCEL数据

    2. Action使用POI读取Excel文件并处理数据。 3. 数据被转换为JFreeChart的数据集。 4. 使用JFreeChart创建图表对象。 5. 如果需要,可以使用`ChartUtilities`将图表保存为图片文件。 6. 在Action中设置响应结果,...

    struts2+poi实现导出Excel文件

    Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...

    struts2 POI-3.7 excel上传下载

    在本项目"struts2 POI-3.7 excel上传下载"中,我们将深入探讨如何使用Struts2和POI-3.7来实现Excel文件的上传和下载功能。 首先,我们需要理解Struts2中的文件上传机制。Struts2提供了FileUpload拦截器,它允许用户...

    struts2 Excel导入数据库

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

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

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

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

    总之,这个源码项目展示了如何结合Struts1的MVC架构和Apache POI的强大功能,实现对Excel文件的高效批量导入,同时支持两种主要的Excel文件格式。通过学习和理解这个项目,开发者可以提升在Web应用中处理Excel数据的...

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

    此方法接受一个包含多种数据类型的列表,并返回一个 `InputStream`,该流可以被 Struts2 动作类用来生成并下载 Excel 文件。 3. **服务层接口实现**: 创建 `ExcelServiceImpl` 类来实现 `IExcelService` 接口。在...

    struts2处理Excel生成txt文件

    本示例涉及的是从Excel文件中读取数据,并将其转换成TXT文件的过程。这个过程通常用于数据迁移、数据分析或者格式转换等场景。以下是对这个主题的详细阐述: 1. **读取Excel文件**: 在Java开发中,我们可以使用...

    Struts2 Excel导入导出数据

    在处理数据导入导出方面,Struts2提供了强大的支持,特别是与Excel文件的交互。本教程将深入探讨如何利用Struts2实现从Oracle数据库导出数据到Excel,以及如何将Excel文件中的数据导入到Oracle。 首先,我们需要...

    基于struts2 spring ibatis poi开发的导出Excel实例

    【基于Struts2 Spring iBatis POI开发的导出Excel实例详解】 在现代Web应用程序中,导出数据到Excel格式是一种常见的需求,这有助于用户分析、存储或共享信息。本实例将详细介绍如何利用Struts2、Spring和iBatis...

    struts2+poi实现excel文件的导出

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

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

    例如,你可以定义一个`importExcel`方法来接收上传的Excel文件,以及一个`exportExcel`方法用于生成并下载Excel文件。 2. **上传文件**: Struts2支持文件上传,你需要在struts.xml配置文件中启用这个特性,并在...

    struts2 支持的下载以及如何动态生成excel表格文件

    总的来说,Struts2提供了便捷的方式来处理文件下载,而Apache POI使我们能够在Java中动态生成Excel文件,这两者结合为Web应用提供了强大的文件操作能力。在实际开发中,你需要根据具体的需求进行适当的调整和优化,...

    struts2文件上传下载

    例如,可以使用Apache POI库来生成Excel文件,或者使用OpenCSV库来生成CSV文件。生成文件后,可以调用上面提到的下载方法来提供下载。 总的来说,"struts2文件上传下载"涵盖了Web开发中的基础功能,对于任何需要...

    POI + Struts2 实现Excel导出工具包

    在Struts2中,我们可以利用Action类和Result类型来处理请求和响应,结合POI库,可以实现在服务器端生成Excel文件并返回给客户端下载。 以下是实现Excel导出的基本步骤: 1. **引入依赖**:首先,你需要在项目的pom...

    struts2Ecxel导入导出

    同时,为了防止恶意文件上传,应检查文件类型和大小,确保只有Excel文件才能被处理。 六、性能优化 大量数据处理可能影响性能,因此可以考虑分批处理数据,使用多线程,或者优化内存使用,如使用SXSSFWorkbook...

    struts导入excel

    jxl库是Java中广泛使用的处理Excel文件的第三方库,它可以读取、写入和修改Excel文件。下面我们将深入探讨这两个主题:Struts的文件上传和jxl库的使用。 1. **Struts 文件上传** - **配置Action**: 首先,你需要在...

    extjs3.2+struts2实现多文件上传excel并插入到数据库

    开发者需要理解ExtJS的组件使用、Struts2的文件上传处理、Java对Excel文件的操作以及数据库的批量插入技巧,才能成功完成这样的功能。而提供的Book1.xls文件可能是示例数据,用于测试上传和导入功能。

Global site tag (gtag.js) - Google Analytics