2011-12-19 12 views

答えて

1

Excel用のラリーアドインはうまく見えますが、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'); 
}; 
+0

私は同様のプロセスを使用しています、そしてそれは非常にうまく機能 - しかし私は、グリッド内のID列を持っている、とのリンクがC上の場所を指す:\ではなくrally1.rallydev.com - ありこれを簡単に修正する方法は? –

+0

それを得ました - ちょうど私が欲しかった接頭辞 –

0

現在、App内のテーブルからデータをエクスポートする方法はありません。

Rally Add-in for Excelを見ましたか?

0

マイケル、あなたがしようとすると、あなたの輸出の仕事をするためにdata URI schemeを使用することができます

。 AppSdkテーブルからデータを取得し、コンマで区切った文字列を作成することは可能です。その後、特別なURIの1つを作成して.csvとしてコンテンツをダウンロードし、Excelで開くことができます。

私たちは、SDKがそのコンポーネントからデータをエクスポートできるようにするというアイデアを思いつきましたが、データURIの絶え間ないサポートの欠如はブロッキングポイントでした。 私は内部的にどのブラウザをサポートしなければならないのか分かりませんが、それはクライアント側のソリューションにとってはいいスタートです。

Hereは、役に立つかもしれないExtJsで動作する解決策です。

関連する問題