如何根据表格数据

时间:2015-07-16 09:01:15

标签: confluence

我有一些关于用户的表格数据。我想基于它生成一个Confluence页面。但是我不想显示数据,而是有一个漂亮的表格。

例如,数据包括用户标识符。但是在页面上我想把它用于少数事情。例如,为用户条目/行创建一个锚点,在列中显示标识符并生成链接(在另一列中)到其他工具,其中标识符是URL中的参数。

这显然是数据与表示分离的明显方向及其所有好处。

现在问题是我不知道如何做到这一点,而我觉得它应该以某种方式与Confluence所提供的一切可能。

有各种报告宏。但问题是如何获取初始表格数据。我尝试使用Excel(或CSV)附件。但我无法从中提取数据(除了显示基于它的简单表格)。

有什么建议吗?我正在使用Confluence 5.4。

我之前在问题Atlassian Answers Reporting on spreadsheet data from attachment上询问了这个问题,但到目前为止还没有答案,我认为没有答案。虽然我认为Stack Overflow更受欢迎,所以我希望也许有人会有任何建议。

2 个答案:

答案 0 :(得分:1)

对于“页面上的显示表信息”部分:这可以通过用户宏来实现。 CSV宏和HTML宏可用于从附件或其他位置提取数据以显示在Wiki页面上。

还有其他方法可以显示此类数据。这可以使用SQL宏从数据库中提取的信息来完成。 Confluence可以从自己的数据库或外部数据库读入。

例如,假设您要使用关键页面信息列出空间中具有超链接的所有页面,以编辑,查看,删除目标页面。此示例中提取的信息位于Confluence表中。

{sql-query:dataSource=wiki|output=wiki}
SELECT 
   '['||B.spacename||'|'||B.spacekey||':]' "Space Name", 
   '['||A.parentid ||'|///pages/viewpage.action?pageId='||A.parentid||']'  "Page Parent", 
   '['||A.contentid||'|///pages/viewpage.action?pageId='||A.contentid||']' "Page Id", 
   '['||A.title    ||'|///viewpage.action?pageId='||A.contentid||']' "Page Title", 
   '[View Page        |///pages/viewpage.action?pageId='||A.contentid||']' "View Page", 
   '[Edit Page        |///pages/editpage.action?pageId='||A.contentid||']' "Edit Page", 
   '[Delete Page      |///pages/removepage.action?pageId='||A.contentid||']' "Delete Page"


FROM wiki.CONTENT A, SPACES B

WHERE   B.SPACEKEY   = 'sp'         -- Put the spacekey here 
    AND B.SPACEID    = A.SPACEID
    AND A.TITLE like '%this%'         -- Optionally, only return results for pages with the word 'this' in them
--  AND A.CONTENTID  = 125999877     -- optionally, only return results for a single page by id

ORDER BY A.TITLE
{sql-query}

在页面上显示内容后,可以通过html宏使用JavaScript对wiki内容进行后期渲染。

{html}

<script type="text/javascript">
AJS.$(document).ready(function() {
   AJS.$('#tableid').find('tr > td').contents().html('Hello world'); // or whatever to find and change the html or text
});

</script>
{html}

答案 1 :(得分:0)

我认为您的Confluence是版本4或更高版本。默认编辑器是WISIWYG,但您也可以启用Source Editor(阅读Confluence doc,了解如何执行此操作)。

您可以在外部编辑器中创建页面源,然后将其复制/粘贴到Confluence Source Editor(如果需要导入多个文件,则使用Confluence REST API)。

创建包含样本表的页面,然后查看此页面的来源。将此页面的元素复制/粘贴到表格数据中。使用搜索和替换模式在正确的位置插入标记。

例如,如果您有CSV文件:   - 用</th><th>替换逗号   - 将<tr><th>放在每行的开头   - 将</th><tr>放在每行的末尾

这应该在Confluence中创建一个漂亮的表。