2

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

4

3 回答 3

1

Excel 的 Rally Add-in 看起来不错,但它只适用于 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');
};
于 2011-12-29T17:54:27.640 回答
0

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

你见过Excel 的 Rally 插件吗?

于 2011-12-19T22:18:51.790 回答
0

迈克尔,

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

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

是一个适用于 ExtJs 的解决方案,您可能会发现它很有用。

于 2011-12-20T16:23:15.940 回答