使用HTML页面的css格式显示标签导出到Excel

时间:2012-05-12 10:05:37

标签: css export-to-excel displaytag

我在我的网络应用程序中使用display标签。我成功地将display tag显示的数据导出到excel。

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

e.g。标题行为粗体,背景为灰色,数据行中的列根据值着色。

但这并没有出口到excel。

编辑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" />

我正在使用默认的显示标签样式表,并对其进行了一些细微的更改。

请帮忙。

3 个答案:

答案 0 :(得分: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,BLACK,BLUE,BLUE_GREY,BRIGHT_GREEN,BROWN,CORAL,CORNFLOWER_BLUE,DARK_BLUE,DARK_GREEN,DARK_RED,DARK_TEAL,DARK_YELLOW,GOLD,GREEN,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,紫罗兰,白色,黄色

答案 1 :(得分:1)

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

答案 2 :(得分:0)

从我最近的学习中我明白显示标签不能直接导出HTML中使用的css样式。您必须以编程方式进行格式设置和样式化

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

程序是:
您需要创建一个类来替换显示标记的默认导出视图类,如ExcelHssfViewDefaultHssfExportView

您可以通过实施ExportView界面来实现这一点,因为显示标签文档说明了:
任何实现org.displaytag.export.ExportView接口的有效类

但我实现了BinaryExportView接口,因为它扩展了ExportView所以它完全相同。 确实,我只是复制了ExcelHssfView来源的所有代码,并仅编辑了doExport方法。 如果您查看来源,您将了解您将要做什么。 提示:使用HSSFCellStyle为excel文件提供任何样式

然后将您的课程指向.property fileexport.excel.class=youpackage.yourExlcelView

查看ExportViewExcelHssfView Source Code

的示例