title: html table to excel using jquery
body: <p>I have this jquery function that works, except I need to add something. I have a filter setup on the table to hide columns. When I hide columns and click export it uses all fields regardless. How would I only export the table columns that are not hidden?</p>
  
  <pre><code>var write_to_excel = (function() {
      var uri = 'data:application/vnd.ms-excel;base64,',
          template = '&lt;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"&gt;&lt;head&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&lt;x:ExcelWorkbook&gt;&lt;x:ExcelWorksheets&gt;&lt;x:ExcelWorksheet&gt;&lt;x:Name&gt;{worksheet}&lt;/x:Name&gt;&lt;x:WorksheetOptions&gt;&lt;x:DisplayGridlines/&gt;&lt;/x:WorksheetOptions&gt;&lt;/x:ExcelWorksheet&gt;&lt;/x:ExcelWorksheets&gt;&lt;/x:ExcelWorkbook&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;/head&gt;&lt;body&gt;&lt;table&gt;{table}&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;',
          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))
          }
  })()​
  </code></pre>
  
  <p>I think I need something like.</p>
  
  <pre><code>if($(table).display.style!="none")
  </code></pre>
  
  <p>Thanks in advance.</p>