在拉力赛中,我们有一个显示表格的自定义应用程序。有没有办法将此表导出到Excel?
答案 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中的表中导出数据。
答案 2 :(得分:0)
迈克尔,
您可以尝试使用data URI scheme进行导出工作。可以从AppSdk表中获取数据并创建逗号分隔的字符串。然后,您可以创建一个特殊的URI来将内容下载为.csv并在excel中打开它们。
我们一直在努力使SDK能够将其数据从其组件中导出,但缺乏对数据URI的持续支持一直是阻碍点。 我不知道你必须在内部支持哪些浏览器,但这对于客户端解决方案来说可能是个不错的开端。
Here是一个适用于您可能觉得有用的ExtJ的解决方案。