java源码:
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class BrowserAccessAction extends ActionSupport { private ReportService reportService; private String year; private String month; private String filename; private InputStream excelStream; public String export(){ HttpServletRequest request = ServletActionContext.getRequest(); String year = request.getParameter("year"); String month = request.getParameter("month"); String ym = year + month; HSSFWorkbook workbook = null; int rowIndex = 0; try { workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); //标题行 sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 1)); //合并单元格 HSSFRow titleRow = sheet.createRow(rowIndex); HSSFCell titleCell = titleRow.createCell(0); titleCell.setCellType(HSSFCell.CELL_TYPE_STRING); titleCell.setCellValue(new HSSFRichTextString(year+"年"+month+"月网站浏览器访问量统计")); //列标题 HSSFRow labelRow = sheet.createRow(++rowIndex); HSSFCell cell0 = labelRow.createCell(0); cell0.setCellType(HSSFCell.CELL_TYPE_STRING); cell0.setCellValue(new HSSFRichTextString("浏览器")); sheet.setColumnWidth(0, 100*50); //列宽 HSSFCell cell1 = labelRow.createCell(1); cell1.setCellType(HSSFCell.CELL_TYPE_STRING); cell1.setCellValue(new HSSFRichTextString("浏览量(%)")); sheet.setColumnWidth(1, 100*50); //数据行 List<BrowserAccessBean> list = this.reportService.selectBrowserAccess(ym); for(BrowserAccessBean bean : list){ HSSFRow dataRow = sheet.createRow(++rowIndex); HSSFCell c0 = dataRow.createCell(0); c0.setCellType(HSSFCell.CELL_TYPE_STRING); c0.setCellValue(new HSSFRichTextString(bean.getName())); HSSFCell c1 = dataRow.createCell(1); c1.setCellType(HSSFCell.CELL_TYPE_STRING); c1.setCellValue(new HSSFRichTextString(String.valueOf(bean.getPerc()))); } filename = ReportUtil.createFileName() + ".xls"; ByteArrayOutputStream out = new ByteArrayOutputStream(); workbook.write(out); out.flush(); byte[] aa = out.toByteArray(); excelStream = new ByteArrayInputStream(aa, 0, aa.length); out.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { if(workbook!=null){ workbook = null; } } catch (Exception e) { e.printStackTrace(); } } return "excel"; } public InputStream getExcelStream(){ return this.excelStream; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } ...... }
2、struts配置
<action name="export" class="browserAccessAction" method="export"> <result name="excel" type="stream"> <param name="contentType">application/vnd.ms-excel</param> <param name="contentDisposition">filename="${filename}"</param> <param name="inputName">excelStream</param> </result> </action>
相关推荐
Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...
这个项目"Java Struts2+poi插件 实现导出Excel"就是结合这两个工具,为用户提供一个功能,能够将数据导出到Excel格式的文件中。 首先,让我们详细了解一下Struts2。Struts2的核心是Action,它负责接收请求、处理...
在本案例中,"struts2+poi实现导出Excel文件.docx"指的是使用Struts2框架结合Apache POI库来实现Excel文件的导出功能。Apache POI是一个用于读写Microsoft Office格式档案的Java API,其中包括Excel。 首先,我们来...
在这个“struts2+poi导出excel表格完整例子”中,我们将深入探讨这两个工具如何协同工作,实现从Web应用导出数据到Excel电子表格的功能。 首先,让我们了解一下Struts2的工作原理。Struts2基于拦截器(Interceptor...
在Struts2框架中,导出Excel功能主要通过一个Action类实现。Action类是Struts2的核心组件,负责处理用户的请求并执行相应的业务逻辑。在本例中,创建了一个名为`panyu.flow.web.action.ExcelAction`的Action类,这个...
通过以上讲解,我们可以看到,结合Struts2和Apache POI,我们可以轻松实现动态生成和导出Excel表格的功能,满足企业级Web应用的需求。提供的文档和网页资源应该会进一步细化这一过程,帮助开发者更好地理解和实践。
在"Struts2+POI实现Excel导出"的场景中,开发者可以利用这两个工具为用户提供数据导出到Excel的功能。以下是一些关键知识点: 1. **Struts2框架**:Struts2是Action Servlet的一种实现,它是基于拦截器的MVC框架,...
Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...
总之,通过 Struts2 和 POI 的结合,开发者可以方便地在 Web 应用中提供 Excel 文件的导出服务,满足数据分析、报表生成等多种场景的需求。记得在实际项目中根据实际情况进行调整和优化,确保代码的健壮性和性能。
Struts2 poi 实现从数据库中导出excel表
Struts2和Apache POI是Java开发中处理Web应用程序数据导出到Excel的常用工具。...以上就是使用Struts2和Apache POI导出数据到Excel的基本流程和关键知识点,实际应用中可能需要根据具体需求进行调整和优化。
这个压缩包文件“struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip”显然是一个整合了这些技术的示例项目,用于演示如何在实际开发中实现数据处理、视图展示以及文件导出功能。 首先,Struts2 ...
标题中的“POI+struts2导出Excel”是指使用Apache POI库与Struts2框架结合,实现在Web应用程序中导出数据到Excel的功能。Apache POI是Java平台上的一个开源项目,它允许开发者创建、修改和显示Microsoft Office格式...
在这个"struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合"项目中,开发者可能实现了以下功能: 1. **数据交互**:通过Struts2接收用户请求,将请求转发给Spring管理的业务层,由Hibernate处理数据库...
本篇文章将深入探讨如何在Struts2框架中使用POI库来导出Excel文件。 首先,我们需要在项目中引入Apache POI库。可以通过Maven或Gradle将其添加到构建文件中。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml...
总的来说,这个示例展示了如何在Java Web环境中集成多个库,实现数据的动态导入导出和PDF生成,对于理解Web应用的开发流程、Struts2的控制逻辑、IText的PDF操作、以及POI与Hibernate的数据库操作有很好的学习价值。...
Struts2是一个基于MVC(Model-View-...综上所述,结合Struts2、POI和JXL,我们可以构建出强大的数据导入导出功能,以及动态生成和下载Excel报表的Web应用。这对于数据驱动的业务来说,提供了极大的便利性和灵活性。
在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...
结合这两个技术,我们可以实现在Web应用中动态导入和导出Excel数据。 首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类...