`
raymond.chen
  • 浏览: 1426273 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2 + poi 数据导出excel

 
阅读更多

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+poi实现导出Excel文件

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

    Java Struts2+poi插件 实现导出Excel

    这个项目"Java Struts2+poi插件 实现导出Excel"就是结合这两个工具,为用户提供一个功能,能够将数据导出到Excel格式的文件中。 首先,让我们详细了解一下Struts2。Struts2的核心是Action,它负责接收请求、处理...

    struts2+poi实现导出Excel文件.docx

    在本案例中,"struts2+poi实现导出Excel文件.docx"指的是使用Struts2框架结合Apache POI库来实现Excel文件的导出功能。Apache POI是一个用于读写Microsoft Office格式档案的Java API,其中包括Excel。 首先,我们来...

    struts2+poi导出excel表格完整例子

    在这个“struts2+poi导出excel表格完整例子”中,我们将深入探讨这两个工具如何协同工作,实现从Web应用导出数据到Excel电子表格的功能。 首先,让我们了解一下Struts2的工作原理。Struts2基于拦截器(Interceptor...

    struts2+poi实现导出Excel文件.pdf

    在Struts2框架中,导出Excel功能主要通过一个Action类实现。Action类是Struts2的核心组件,负责处理用户的请求并执行相应的业务逻辑。在本例中,创建了一个名为`panyu.flow.web.action.ExcelAction`的Action类,这个...

    struts2中利用poi导出excel

    本篇文章将深入探讨如何在Struts2框架中使用POI库来导出Excel文件。 首先,我们需要在项目中引入Apache POI库。可以通过Maven或Gradle将其添加到构建文件中。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml...

    struts2+poi实现excel表格导出

    通过以上讲解,我们可以看到,结合Struts2和Apache POI,我们可以轻松实现动态生成和导出Excel表格的功能,满足企业级Web应用的需求。提供的文档和网页资源应该会进一步细化这一过程,帮助开发者更好地理解和实践。

    struts2+poi 实现Excel导出

    在"Struts2+POI实现Excel导出"的场景中,开发者可以利用这两个工具为用户提供数据导出到Excel的功能。以下是一些关键知识点: 1. **Struts2框架**:Struts2是Action Servlet的一种实现,它是基于拦截器的MVC框架,...

    struts1.2+extjs+导出excel项目

    Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...

    struts2+poi实现excel文件的导出

    总之,通过 Struts2 和 POI 的结合,开发者可以方便地在 Web 应用中提供 Excel 文件的导出服务,满足数据分析、报表生成等多种场景的需求。记得在实际项目中根据实际情况进行调整和优化,确保代码的健壮性和性能。

    Struts2+poi 实现从数据库中导出excel表

    Struts2 poi 实现从数据库中导出excel表

    struts2 poi导出到excel

    Struts2和Apache POI是Java开发中处理Web应用程序数据导出到Excel的常用工具。...以上就是使用Struts2和Apache POI导出数据到Excel的基本流程和关键知识点,实际应用中可能需要根据具体需求进行调整和优化。

    struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip

    这个压缩包文件“struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip”显然是一个整合了这些技术的示例项目,用于演示如何在实际开发中实现数据处理、视图展示以及文件导出功能。 首先,Struts2 ...

    POI+struts2导出Excel

    标题中的“POI+struts2导出Excel”是指使用Apache POI库与Struts2框架结合,实现在Web应用程序中导出数据到Excel的功能。Apache POI是Java平台上的一个开源项目,它允许开发者创建、修改和显示Microsoft Office格式...

    struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合

    在这个"struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合"项目中,开发者可能实现了以下功能: 1. **数据交互**:通过Struts2接收用户请求,将请求转发给Spring管理的业务层,由Hibernate处理数据库...

    Struts2+IText动态导出PDF示例源码

    总的来说,这个示例展示了如何在Java Web环境中集成多个库,实现数据的动态导入导出和PDF生成,对于理解Web应用的开发流程、Struts2的控制逻辑、IText的PDF操作、以及POI与Hibernate的数据库操作有很好的学习价值。...

    struts2+poi+jxl

    Struts2是一个基于MVC(Model-View-...综上所述,结合Struts2、POI和JXL,我们可以构建出强大的数据导入导出功能,以及动态生成和下载Excel报表的Web应用。这对于数据驱动的业务来说,提供了极大的便利性和灵活性。

    struts2+jxl导出excel

    在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...

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

    结合这两个技术,我们可以实现在Web应用中动态导入和导出Excel数据。 首先,让我们深入理解一下如何使用Struts2和POI来实现Excel的导入导出。 1. **Struts2的Action配置**: 在Struts2中,你需要创建一个Action类...

Global site tag (gtag.js) - Google Analytics