`
hypgr
  • 浏览: 277736 次
社区版块
存档分类
最新评论

Struts 2导出EXCEL

阅读更多
import java.io.IOException;    
import java.io.OutputStream;    
import java.util.List;    
import javax.servlet.http.HttpServletResponse;    
import org.apache.poi.hssf.usermodel.HSSFCell;    
import org.apache.poi.hssf.usermodel.HSSFCellStyle;    
import org.apache.poi.hssf.usermodel.HSSFDataFormat;    
import org.apache.poi.hssf.usermodel.HSSFFont;    
import org.apache.poi.hssf.usermodel.HSSFRow;    
import org.apache.poi.hssf.usermodel.HSSFSheet;    
import org.apache.poi.hssf.usermodel.HSSFWorkbook;    
import org.apache.struts2.ServletActionContext;    
import com.neusoft.dcd.css.common.BaseAction;    
import com.neusoft.dcd.css.model.management.user.UserBaseInfo;    
import com.neusoft.dcd.css.model.tsc.Tsc;    
import com.neusoft.dcd.css.service.tsc.TscService;    
import com.opensymphony.xwork2.Preparable;    
   
   
public class ExportExcel {      
    private static final long serialVersionUID = 1L;    
    private TscService cssTscService;    
    public void prepare() throws Exception {    
    }    
   
    /**   
     * 绘出Excel   
     *    
     * @param actionMapping   
     * @param actionForm   
     * @param request   
     * @param response   
     * @return   
     * @throws Exception    
     */   
    public String init() throws Exception {    
        UserBaseInfo userinfo = (UserBaseInfo) ServletActionContext    
        .getRequest().getSession().getAttribute("UserBaseInfo");    
        if(userinfo!=null){    
        HttpServletResponse response = ServletActionContext.getResponse();     
        List dataList=cssTscService.queryForProTsclb(userinfo.getUserId());     
        HSSFWorkbook workbook = exportExcel(dataList);    
        if(workbook!= null){    
            this.printExcel(workbook,response,"ExcelTsc.xls");    
        }    
        }    
        return SUCCESS;    
    }    
   
   
// 导出Excel    
   
        private void printExcel(HSSFWorkbook workbook,HttpServletResponse response, String string) throws IOException {    
        OutputStream out = response.getOutputStream();    
        response.setHeader("Content-disposition","attachment; filename=" + "TSC.xls");    
        response.setContentType("application/msexcel;charset=UTF-8");    
        workbook.write(out);    
        out.flush();    
        out.close();    
            
    }    
   
    public HSSFWorkbook exportExcel(List dataList) throws Exception    
    {    
         HSSFWorkbook workbook = null;    
         try   
         {    
              // 这里的数据即时你要从后台取得的数据    
                  
              // 创建工作簿实例    
              workbook = new HSSFWorkbook();    
              // 创建工作表实例    
              HSSFSheet sheet = workbook.createSheet("TscExcel");    
              // 设置列宽    
              this.setSheetColumnWidth(sheet);    
              // 获取样式    
              HSSFCellStyle style = this.createTitleStyle(workbook);    
                  
             //    
             if (dataList != null && dataList.size() > 0)    
             {    
                  // 创建第一行标题,标题名字的本地信息通过resources从资源文件中获取    
                  HSSFRow row = sheet.createRow((short) 0);// 建立新行    
                     
                  this.createCell(row, 0, style, HSSFCell.CELL_TYPE_STRING,    
                       this.getText("css.tsc.asktime"));    
                  this.createCell(row, 1, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.productname"));    
                  this.createCell(row, 2, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.passsort"));    
                  this.createCell(row, 3, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.askusername"));    
                  this.createCell(row, 4, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.dtype"));    
                  this.createCell(row, 5, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.askone"));    
                  this.createCell(row, 6, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.department"));    
                  this.createCell(row, 7, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.requesttime"));    
                  this.createCell(row, 8, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.answertime"));    
                  this.createCell(row, 9, style, HSSFCell.CELL_TYPE_STRING,    
                          this.getText("css.tsc.requesttow"));    
                  // 给excel填充数据    
                  for(int i=0;i<dataList.size();i++)    
                  {    
                      // 将dataList里面的数据取出来,假设这里取出来的是Model,也就是某个javaBean的意思啦    
                      Tsc  model= (Tsc)dataList.get(i);    
                      HSSFRow row1 = sheet.createRow((short) (i + 1));// 建立新行    
                      if(model.getAsktime()!=null)    
                      this.createCell(row1, 0, style, HSSFCell.CELL_TYPE_STRING,    
                           model.getAsktime());    
                      if(model.getProductname()!=null)    
                      this.createCell(row1, 1, style, HSSFCell.CELL_TYPE_STRING,    
                           model.getProductname());      
                      if(model.getPasssort()!=null)    
                      this.createCell(row1, 2, style, HSSFCell.CELL_TYPE_STRING,    
                           model.getPasssort());    
                      if(model.getAskusername()!=null)    
                      this.createCell(row1, 3, style, HSSFCell.CELL_TYPE_STRING,    
                           model.getAskusername());    
                      if(model.getDtype()!=null)    
                      this.createCell(row1, 4, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getDtype());    
                      if(model.getAskone()!=null)    
                      this.createCell(row1, 5, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getAskone());    
                      if(model.getDepartment()!=null)    
                      this.createCell(row1, 6, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getDepartment());    
                      if(model.getRequesttime()!=null)    
                      this.createCell(row1, 7, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getRequesttime());    
                      if(model.getAnswertime()!=null)    
                      this.createCell(row1, 8, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getAnswertime());    
                      if(model.getRequesttow()!=null)    
                      this.createCell(row1, 9, style, HSSFCell.CELL_TYPE_STRING,    
                            model.getRequesttow());    
                      
                  }    
             }    
             else {    
                 this.createCell(sheet.createRow(0), 0, style,    
                 HSSFCell.CELL_TYPE_STRING, "查无资料");    
             }    
         }catch(Exception e)    
         {    
             e.printStackTrace();    
         }    
        return workbook;    
   
    }    
    private void setSheetColumnWidth(HSSFSheet sheet)    
    {    
            // 根据你数据里面的记录有多少列,就设置多少列    
            sheet.setColumnWidth((short) 0, (short) 3000);    
            sheet.setColumnWidth((short) 1, (short) 3000);    
            sheet.setColumnWidth((short) 2, (short) 3000);    
            sheet.setColumnWidth((short) 3, (short) 3000);    
            sheet.setColumnWidth((short) 4, (short) 5000);    
            sheet.setColumnWidth((short) 5, (short) 5000);    
            sheet.setColumnWidth((short) 6, (short) 5000);    
            sheet.setColumnWidth((short) 7, (short) 5000);    
            sheet.setColumnWidth((short) 8, (short) 5000);    
            sheet.setColumnWidth((short) 9, (short) 5000);    
    }    
    // 设置excel的title样式    
    private HSSFCellStyle createTitleStyle(HSSFWorkbook wb) {    
       HSSFFont boldFont = wb.createFont();    
       boldFont.setFontHeight((short) 200);    
       HSSFCellStyle style = wb.createCellStyle();    
       style.setFont(boldFont);    
       style.setDataFormat(HSSFDataFormat.getBuiltinFormat("###,##0.00"));    
       return style;    
   }    
   // 创建Excel单元格    
   private void createCell(HSSFRow row, int column, HSSFCellStyle style,    
           int cellType,Object value) {    
           HSSFCell cell = row.createCell((short) column);    
           cell.setEncoding(HSSFCell.ENCODING_UTF_16);    
           if (style != null) {    
              cell.setCellStyle(style);    
          }     
          switch (cellType) {    
              case HSSFCell.CELL_TYPE_BLANK: {    
       }    
           break;    
       case HSSFCell.CELL_TYPE_STRING: {    
           cell.setCellValue(value.toString());    
            }    
           break;    
       case HSSFCell.CELL_TYPE_NUMERIC: {    
           cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);    
           // DecimalFormat format = new DecimalFormat("###,##0.00");    
           // cell.setCellValue(Float.parseFloat(value.toString()));    
           cell.setCellValue(Double.parseDouble(value.toString()));    
       }    
           break;    
       default:    
           break;    
       }    
   }    
   
public void setCssTscService(TscService cssTscService) {    
    this.cssTscService = cssTscService;    
}    
   
}   

 

分享到:
评论

相关推荐

    struts2导出excel java 导出excel JXL

    struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包

    struts2导出excel.rar

    本压缩包"struts2导出excel.rar"提供了关于如何在Struts2框架中实现Excel导出功能的相关资源。 1. **Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的Java框架,它简化了MVC的实现,...

    POI+struts2导出Excel

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

    struts2导出excel笔记

    在Struts2中,导出Excel是常见的需求,通常用于数据报表或数据分析。这篇笔记将探讨如何在Struts2中实现Excel的导出功能。 首先,我们需要了解Excel的基本概念。Excel是由Microsoft开发的一款电子表格软件,广泛...

    struts2导出Excel poi

    在Struts2中,Action可以通过Result返回不同的视图,比如JSP、XML或流文件,这正是我们导出Excel所需的。 接下来,我们引入Apache POI。POI提供了读写Microsoft Office文件的API,对于Excel,主要使用HSSFWorkbook...

    struts2实现excel导出

    在Struts2框架中,实现Excel导出的功能主要依赖于Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。以下将详细介绍如何利用Struts2和POI实现Excel导出。 首先,你需要在项目中引入Apache POI库。...

    struts2 poi导出到excel

    接下来,我们创建一个Struts2的动作类(Action),在这个类中定义导出Excel的方法。这个方法通常会接收一些参数,如查询条件,然后根据这些条件从数据库或其他数据源获取数据。例如: ```java public class ...

    Struts1.2导出Excel表

    在这个“Struts1.2导出Excel表完美版”中,我们将深入探讨如何利用Struts1.2框架来实现这一功能。 首先,导出Excel表的核心技术是Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。在Struts1.2...

    JSP Struts2 分页 导出Excel

    **JSP Struts2 分页 导出Excel** 在Web开发中,经常需要处理大量数据,这时分页显示和导出功能就显得尤为重要。JSP(JavaServer Pages)和Struts2作为Java Web开发中的常见技术,可以帮助我们构建动态、交互的网页...

    整合struts2 ssh导出excel

    首先,导出Excel是Web应用中常见的需求,通常用于报表生成或数据批量下载。在Struts2中,我们可以利用Apache POI库来操作Microsoft Office的XML格式,进而创建Excel文件。 1. **Apache POI库的使用**:Apache POI是...

    struts2中利用poi导出excel

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

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

    6. **Struts2配置**: 配置Struts2的action,定义导出Excel的方法,并在struts.xml中配置相应的结果类型,如stream,以便能正确处理返回的流。 7. **安全性考虑**: 在实际应用中,要考虑文件名的安全性,防止路径...

    struts1.2+extjs+导出excel项目

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

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

    在实际项目中,我们经常需要提供文件下载功能,比如导出Excel表格、文本文件或者图片。Struts2提供了文件流的方式来实现这一需求,这种方式避免了在服务器上生成临时文件,提高了效率并减少了服务器存储空间的占用。...

    Struts2 Excel导入导出数据

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

    Java Struts2+poi插件 实现导出Excel

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

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

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

    struts,poi导出excel

    在 Java 开发中,如果你需要导出数据到 Excel,Apache POI 提供了高效的 API 来实现这一功能。在本文中,我们将深入探讨如何使用 POI 组件来创建和操作 Excel 文档。 1. **创建 Excel 文档对象** 创建一个 Excel ...

    struts2+poi实现导出Excel文件

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

Global site tag (gtag.js) - Google Analytics