Rally Custom App导出到Excel

时间:2011-12-19 22:06:17

标签: rally

在拉力赛中,我们有一个显示表格的自定义应用程序。有没有办法将此表导出到Excel?

3 个答案:

答案 0 :(得分:1)

Excel的Rally加载项看起来很不错,但它仅适用于Office 2010,我们仍然坚持2007年。但我确实发现这个解决方案很简单,并且可以在Firefox中运行。添加了一个按钮到应用程序,单击时我传入表格的div_id和标题。

var tableToExcel = (function() {
      var uri = 'data:application/vnd.ms-excel;base64,'
        , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
        , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
        , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
      return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
        window.location.href = uri + base64(format(template, ctx))
      }
    })();

var onClicked = function(sender, eventArgs) {
    var buttonValue = eventArgs.value;
    tableToExcel('mashup_table', 'Reviews Report Table');
};

答案 1 :(得分:0)

目前无法从App中的表中导出数据。

你见过Rally Add-in for Excel吗?

答案 2 :(得分:0)

迈克尔,

您可以尝试使用data URI scheme进行导出工作。可以从AppSdk表中获取数据并创建逗号分隔的字符串。然后,您可以创建一个特殊的URI来将内容下载为.csv并在excel中打开它们。

我们一直在努力使SDK能够将其数据从其组件中导出,但缺乏对数据URI的持续支持一直是阻碍点。 我不知道你必须在内部支持哪些浏览器,但这对于客户端解决方案来说可能是个不错的开端。

Here是一个适用于您可能觉得有用的ExtJ的解决方案。