2012-03-26 9 views
2

私は、HTMLテーブルをExcelにエクスポートするために私が見つけたJavaScript関数を使用しています。それはかなりうまくいきますが、ExcelにエクスポートするときにHTMLテーブルの最初の列を除外したいと思います。私はこれをjQueryで簡単に行うことができますが、関数はJSにあり、これを動作させるのに問題があります。誰も私は最初の列を無視するこのコード行を変更する方法を提案できますか?JavaScript最初の列がないテーブルを取得する

var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} 

どこtable = document.getElementById("exporttable")

EDIT - 完全なコード

<script type="text/javascript"> 
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)) 
    } 
})() 

</script> 

<input id="exporttoexcel" name="ExportToExcel" type="button" onclick="tableToExcel('exporttable', 'Tab Name')" value="Export to Excel"> 
+0

この操作を行うjsコードも投稿してください。 –

+0

オリジナルの投稿を編集しました。 – kramden88

答えて

0

あなたはこのような何かを試みることができる:しかし、innerHTMLの出力は非常に異なる可能性があることを理解

var ctx = { 
    worksheet:name || "Worksheet", 
    table: table.innerHTML.replace(/<tr>\s*<td>[\s\S]*?<\/td>/ig,"<tr>") 
}; 

を元のソースからのものであり、 eブラウザを使用します。また、正規表現でHTMLを解析することは一般的には悪い考えですが、明確に定義されている場合は効果的に動作します。

+0

これはうまくいかなかった、ありがとう。出力は元のテーブルと同じでした。 – kramden88

関連する問題