2012-05-12 58 views
2

我在我的web应用程序中使用显示标签。我成功地将显示标签显示的数据导出为ex​​cel。将显示标签导出为Excel格式的HTML页面

问题是我也希望标题和数据行样式和css被包含在导出的excel中。

例如标题行是粗体,背景为灰色,数据行中的列根据值进行着色。

但是这不会被导出为ex​​cel。

编辑1: -

下面是我的JSP显示标签代码。该列表正确显示,并正确应用于标题和数据行的所有CSS。

我也可以将数据导出到excel中。

<display:table name="userList" pagesize="20" class="listingTable" keepStatus="true" 
cellpadding="0px" cellspacing="0px" id="user" export='true' requestURI=""> 
<display:setProperty name="export.decorated" value="true" /> 
<display:setProperty name="export.excel.filename" value="User List.xls" /> 
<display:column titleKey="user.firstname" property="firstname"></display:column> 
<display:column titleKey="user.lastname" property="lastname"></display:column> 
<display:column titleKey="user.email" property="email"></display:column> 
<display:setProperty name="paging.banner.item_name" value="User" /> 
<display:setProperty name="paging.banner.items_name" value="Users" /> 

我使用的是默认的显示标签的样式表进行一些小改动它。

请帮忙。

+0

这将帮助,如果你提供你所到目前为止已经试过和一段代码,说明你目前的问题。 – Boud

+0

[此源](http://goaheaddebu.blogspot.in/2011/08/export-gridview-data-to-excel-in-xls.html#.T7HIQbMwyJQ)可能会帮助你... –

回答

2

CSS样式必须直接应用于每个需要样式的元素。因此,对于一个大胆的标题行以灰色背景,则需要以下CSS:

th { background-color: grey-25-percent; font-weight: bold }

(或代替th,使用theadthead tr

displaytag也适用于一些类奇/偶行,排序行和其他几个。 See this page了解更多详情。此外,Excel只能使用56种不同的颜色,所以如果您想要字体颜色或背景颜色,则必须使用Excel可以接受的颜色。 See this article适合各种Excel兼容颜色。

下面是可接受的颜色的简短列表:AQUA,黑色,蓝色,BLUE_GREY,BRIGHT_GREEN,BROWN,CORAL,CORNFLOWER_BLUE,DARK_BLUE,DARK_GREEN,DARK_RED,DARK_TEAL,DARK_YELLOW,金色,绿色,GREY_25_PERCENT,GREY_40_PERCENT,GREY_50_PERCENT,GREY_80_PERCENT ,INDIGO,LAVENDER,LEMON_CHIFFON,LIGHT_BLUE,LIGHT_CORNFLOWER_BLUE,LIGHT_GREEN,LIGHT_ORANGE,LIGHT_TURQUOISE,LIGHT_YELLOW,LIME,MAROON,OLIVE_GREEN,ORANGE,ORCHID,PALE_BLUE,PINK,PLUM,RED,ROSE,ROYAL_BLUE,SEA_GREEN,SKY_BLUE,TAN,TEAL,TURQUOISE ,VIOLET,WHITE,YELLOW

+0

我可以提供更多一步一步的细节,你是否也会发布你的代码。 – eterps

+0

感谢您的回答。我用显示标签代码更新了我的问题。 – ashishjmeshram

+0

你在哪里定义'listingTable'类,你的'Displaytag.properties'看起来像什么?另外,请看这篇文章以供参考:http://www.devx.com/webdev/10MinuteSolution/31020/1954 – eterps

1

要导出带有样式信息的HTML表格,不能使用CSS的Class方法。相反,在每个需要以某种方式格式化的HTML标签中,您都添加了Style参数。例如为表格行设置样式使用

0

从我最近的学习我明白显示标记不能直接导出HTML中使用的CSS样式。您必须以编程方式完成格式和样式

我采取了一种方法,我成功了。

的程序是:
你需要创建一个类来替代默认的出口视图类的显示标记的像ExcelHssfViewDefaultHssfExportView

您可以通过实现ExportView接口做到这一点作为显示标签的文件说:
任何有效的类,实现org.displaytag.export.ExportView接口

但我实施了BinaryExportView接口,因为它延伸ExportView所以它们都是一样的。 真正地说,我只是复制了ExcelHssfView源代码中的所有代码,并仅编辑了doExport方法。 如果你看看源代码,你会明白你将要做什么。 提示:使用HSSFCellStyle给任何风格的Excel文件

,然后指向你的类在.property fileexport.excel.class=youpackage.yourExlcelView

见例如ExportView的:ExcelHssfView Source Code

相关问题