这是一个非常有用的问题.

步骤1:制作一个com.displaytag.export.views包

步骤2:在上述包中创建一个类myExcel2007ExportView.java.

步骤3:将以下代码复制并粘贴到该文件中

package com.displaytag.export.views;

import java.io.IOException;

import java.io.OutputStream;

import java.util.Iterator;

import javax.servlet.jsp.JspException;

import org.apache.commons.lang.ObjectUtils;

import org.apache.commons.lang.StringUtils;

import org.displaytag.export.BinaryExportView;

import org.displaytag.model.Column;

import org.displaytag.model.ColumnIterator;

import org.displaytag.model.HeaderCell;

import org.displaytag.model.RowIterator;

import org.displaytag.model.TableModel;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.CellStyle;

import org.apache.poi.ss.usermodel.IndexedColors;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.util.CellRangeAddress;

import org.apache.poi.xssf.usermodel.XSSFFont;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.lowagie.text.BadElementException;

public class myExcel2007ExportView implements BinaryExportView{

//private static Log log = LogFactory.getLog(myExcel2007ExportView.class);

private TableModel model;

private boolean exportFull;

private boolean header;

private boolean decorated;

private XSSFWorkbook workbook;

private XSSFSheet sheet;

private int rowCount=0;

private CellStyle normalstyle=null;

private CellStyle headerstyle=null;

private CellStyle captionstyle=null;

private XSSFFont defaultFont;

private XSSFFont headerFont;

private XSSFFont captionFont;

public String getMimeType() {

return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

}

public void setParameters(TableModel tableModel, boolean exportFullList, boolean includeHeader,

boolean decorateValues)

{

this.model = tableModel;

this.exportFull = true;

this.header = includeHeader;

this.decorated = decorateValues;

}

public boolean outputPage() {

return false;

}

protected void initTable() throws BadElementException

{

//Blank workbook

workbook = new XSSFWorkbook();

//Create a blank sheet

sheet = workbook.createSheet("Server Management System");

defaultFont= workbook.createFont();

defaultFont.setFontHeightInPoints((short)10);

defaultFont.setFontName("Arial");

defaultFont.setColor(IndexedColors.BLACK.getIndex());

defaultFont.setBold(false);

defaultFont.setItalic(false);

headerFont= workbook.createFont();

headerFont.setFontHeightInPoints((short)10);

headerFont.setFontName("Arial");

headerFont.setColor(IndexedColors.WHITE.getIndex());

headerFont.setBold(true);

headerFont.setItalic(false);

captionFont= workbook.createFont();

captionFont.setFontHeightInPoints((short)15);

captionFont.setFontName("Arial");

captionFont.setColor(IndexedColors.BLACK.getIndex());

captionFont.setBold(true);

captionFont.setItalic(false);

normalstyle= workbook.createCellStyle();

normalstyle.setFillBackgroundColor(IndexedColors.WHITE.getIndex());

normalstyle.setFillPattern(CellStyle.BIG_SPOTS);

normalstyle.setAlignment(CellStyle.ALIGN_CENTER);

normalstyle.setFont(defaultFont);

headerstyle= workbook.createCellStyle();

headerstyle.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex());

headerstyle.setFillPattern(CellStyle.BIG_SPOTS);

headerstyle.setAlignment(CellStyle.ALIGN_CENTER);

headerstyle.setFont(headerFont);

captionstyle= workbook.createCellStyle();

captionstyle.setFillBackgroundColor(IndexedColors.GREY_25_PERCENT.getIndex());

captionstyle.setFillPattern(CellStyle.BIG_SPOTS);

captionstyle.setAlignment(CellStyle.ALIGN_CENTER);

captionstyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);

captionstyle.setFont(captionFont);

}

protected void generateXLSXTable() throws JspException, BadElementException

{

//adding caption

if(this.model.getCaption()!=null && this.model.getCaption()!="")

{

Row blankrow = sheet.createRow(rowCount++);

Row row = sheet.createRow(rowCount++);

row.setHeight((short)5000);

int columnCount=0;

Cell captionCell = row.createCell(columnCount++);

captionCell.setCellValue(this.model.getCaption());

captionCell.setCellStyle(captionstyle);

sheet.addMergedRegion(new CellRangeAddress(

rowCount-1, //first row (0-based)

rowCount-1, //last row (0-based)

columnCount-1, //first column (0-based)

columnCount+5 //last column (0-based)

));

Row blankrow2 = sheet.createRow(rowCount++);

}

if (this.header)

{

generateHeaders();

}

generateRows();

//adding footer

if(this.model.getFooter()!=null && this.model.getFooter()!="")

{

Row blankrow = sheet.createRow(rowCount++);

Row blankrow2 = sheet.createRow(rowCount++);

Row row = sheet.createRow(rowCount++);

row.setHeight((short)1000);

int columnCount=0;

Cell captionCell = row.createCell(columnCount++);

captionCell.setCellValue(this.model.getFooter());

captionCell.setCellStyle(captionstyle);

sheet.addMergedRegion(new CellRangeAddress(

rowCount-1, //first row (0-based)

rowCount-1, //last row (0-based)

columnCount-1, //first column (0-based)

columnCount+5 //last column (0-based)

));

}

}

protected void generateHeaders() throws BadElementException

{

Iterator iterator = this.model.getHeaderCellList().iterator();

Row row = sheet.createRow(rowCount++);

int columnCount=0;

while (iterator.hasNext())

{

sheet.autoSizeColumn(columnCount);

HeaderCell headerCell = iterator.next();

String columnHeader = headerCell.getTitle();

if (columnHeader == null)

{

columnHeader = StringUtils.capitalize(headerCell.getBeanPropertyName());

}

Cell hdrCell = row.createCell(columnCount++);

hdrCell.setCellValue(columnHeader);

hdrCell.setCellStyle(headerstyle);

}

}

protected void generateRows() throws JspException, BadElementException

{

// get the correct iterator (full or partial list according to the exportFull field)

RowIterator rowIterator = this.model.getRowIterator(this.exportFull);

// iterator on rows

while (rowIterator.hasNext())

{

Row newrow = sheet.createRow(rowCount++);

org.displaytag.model.Row row = rowIterator.next();

// iterator on columns

ColumnIterator columnIterator = row.getColumnIterator(this.model.getHeaderCellList());

int columnCount=0;

while (columnIterator.hasNext())

{

Column column = columnIterator.nextColumn();

// Get the value to be displayed for the column

Object value = column.getValue(this.decorated);

Cell Cell = newrow.createCell(columnCount++);

Cell.setCellValue(ObjectUtils.toString(value));

}

}

}

@Override

public void doExport(OutputStream out) throws IOException, JspException {

try {

// Initialize the table with the appropriate number of columns

initTable();

generateXLSXTable();

} catch (BadElementException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

workbook.write(out);

out.close();

}

}

注意:您可以根据需要修改此类.

步骤4:在资源文件夹中创建一个文件displaytag.properties

步骤5:在其中复制并粘贴以下代码

export.amount=list

sort.amount=list

export.decorated=true

export.types=csv excel xml pdf rtf [mymedia]

export.[mymedia]=true

export.[mymedia].class=com.displaytag.export.views.myExcel2007ExportView

export.excel=true

export.csv=true

export.xml=true

export.pdf=true

export.pdf.include_header=true

export.excel.include_header=true

export.rtf=true

export.rtf.label=RTF

export.rtf.include_header=true

export.rtf.filename=

export.[mymedia].label=Excel 2007

export.[mymedia].include_header=true

export.[mymedia].filename=

注意:请确保您不更改属性的顺序

步骤6:在JSP文件中

yourcaption

//other columns

yourfooter

注意:不要忘记在标题,页脚中添加[mymedia],也不要忘记按如下所示设置文件名.

步骤7:将以下jar文件复制并粘贴到WEB-INF / lib文件夹中

displaytag-1.2.jar

displaytag-export-poi-1.2.jar

displaytag-portlet-1.2.jar

commons-lang-2.3 or above

commons-beanutils-1.7.0 or above

commons-collections-3.1 or above

commons-logging-1.1.jar

itext-1.3 or above

slf4j-api-1.4.2 or above

slf4j-log4j12-1.4.2 or above

poi-3.2-FINAL.jar

poi-3.9.jar

poi-ooxml-3.9.jar

poi-ooxml-schemas-3.9.jar

stax-api-1.0.1.jar

xmlbeans-2.6.0.jar

commons-codec-1.5.jar

dom4j-1.6.1.jar

log4j-1.2.15.jar

注意:如果我忘记了任何依赖项jar,请使用maven进行检查.

步骤8:运行项目并享受():)如果有任何错误,也请通知我.另外,如果您在displaytag中使用任何装饰器,则必须为其编写代码.

谢谢

制作资源文件夹如果您使用的是eclipse,请右键单击以下Java资源

提供名称res并在其中创建属性文件

使用netBeans IDE 7.4

java中的displaytag类_java-如何在displaytag中以xlsx扩展名导出Excel文...相关推荐

  1. 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。...

    编译ASP.NET时,提示"请确保此代码文件中定义的类与"inherits"属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的.", ...

  2. html中写自增数字,WPS word中数字怎么自增 如何在word中设置数字的千位分隔符

    选中某行,列或者某一部分,选择菜单栏的"行和列"->"填充"选项,选择序列选项. 在弹出的窗口中设置你需要的选项. WPS文字怎样自动增加数字 如何在WP ...

  3. npoi把xlsx文件转为html,C# NPOI 导入与导出Excel文档 兼容xlsx, xls(xf13中已经引用了xlsx的npoi)...

    这里使用的NPOI版本为: 2.1.3.1 版本内包含.Net 2.0 与.Net 4.0 .Net 4.0中包含文件 使用时需引用需要引用所有5个dll 使用到的引用 using NPOI.HSSF ...

  4. java如何实取随机数_java - 如何在Kotlin中获取随机数?

    java - 如何在Kotlin中获取随机数? 可以在2个参数之间返回随机整数的通用方法,如ruby,可以使用rand(0..n). 有什么建议吗? 16个解决方案 208 votes 我的建议是In ...

  5. java中源代码的类_java中源代码功能了解

    datainput和dataoutput类的作用: java.io.DataInput  一句话概括,从二进制流中读取字节到缓存数组 从二进制流中转化字节 读取一些字节从输入流中,存储他们在缓存数组中 ...

  6. java如何使显示字符下标_Java如何在 Word 中设置上、下标

    上标是指比同一行中其他文字稍高的文字,而下标是指比同一行中其他文字稍低的文字.在生活中,我们常见的平方米.立方米等符号以及化学中的各种元素符号,都是利用上.下标来表示的.本文将介绍通过Free Spi ...

  7. 如何用java创建超链接_Java如何在PPT中的幻灯片上创建超链接?

    在Java编程中,如何在PPT中的幻灯片上创建超链接? 注意:需要访问网址:http://poi.apache.org/download.html , 下载一个Apache POI软件包.这里下载最新 ...

  8. java bean的反射类_JAVA中反射机制五(JavaBean的内省与BeanUtils库)

    内省(Introspector) 是Java 语言对JavaBean类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法 ...

  9. java中的祖先类_Java程序公共祖先类-Object

    在Java中,所有的类都继承自Object类,它是所有的始祖,但是我们不需要显示的书写extends Object. equals方法 在JDK中,Object类的equals方法的实现如下: pub ...

  10. java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

最新文章

  1. VS Debug和Release版本的区别
  2. kubevela随笔
  3. BFE Ingress Controller正式发布!
  4. 工作中的小技巧(一)
  5. 【经典回放】多种语言系列数据结构算法:树(C#、JavaScript、VB6版)
  6. SC2012 Orchestrator - 文档及资源链接
  7. java 新项目计划_Java的新项目学成在线笔记-day6(十二)
  8. mongodb模糊查询_我叫Mongo,收了「查询基础篇」,值得你拥有
  9. 服务器上删掉的数据如何找回,在服务器数据丢失情况下如何恢复数据
  10. 李白藏头诗鸿蒙,【表白的诗句藏头诗】表白的诗句60句
  11. 多商户JAVA扫码点餐小程序源码SaaS模式
  12. 蓝牙射频的杂散,谐波与FCC测试解密
  13. com.google.guava maven依赖
  14. 今天是国际数学日,既是爱因斯坦的生日又是霍金的忌日
  15. 《阿里云天池大赛赛题解析(深度学习篇)》学习笔记(3)实体识别深度学习方法
  16. python变量名必须以字母或下划线开头不区分字母大小写_Python变量名必须以字符或下划线开头,并且区分字母大小写。...
  17. sys/types.h,sys/stat.h与fcntl.h的作用
  18. bim要求计算机什么配置,BIM对电脑配置的要求
  19. Http--跨域请求
  20. ecshop和Ucenter 通信失败终极解决方法!(附带php5.3以上,出现其他问题解决方法)

热门文章

  1. IT营最新Node.js入门到实战项目视频教程免费下载
  2. CAD 使用 颜色 线型
  3. windows下安装linux环境
  4. 灰色系统预测matlab代码,灰色预测MATLAB代码
  5. LiveGBS国标GB/T28181流媒体平台华为IPC设备GB35114配置接入说明
  6. Quartus破解成功,但出现不支持某些设备的问题解决
  7. Itext 7 生成PDF总结
  8. C语言中函数指针和指针函数
  9. 数据恢复软件分享(第二篇)
  10. 使用汉化版srvinstw.exe安装/卸载Windows系统服务