 <p>Here's an alternative using a ChartWrapper instead of a chart.</p> <pre><code>var opts = { "containerId": "chart_div", "dataTable": datatable, "chartType": "Table", "options": {"title": "Now you see the columns, now you don't!"} } var chartwrapper = new google.visualization.ChartWrapper(opts); // set the columns to show chartwrapper.setView({'columns': [0, 1, 4, 5]}); chartwrapper.draw(); </code></pre> <p>If you use a ChartWrapper, you can easily add a function to change the hidden columns, or show all the columns. To show all the columns, pass <code>null</code> as the value of <code>'columns'</code>. For instance, using jQuery, </p> <pre><code>$('button').click(function() { // use your preferred method to get an array of column indexes or null var columns = eval($(this).val()); chartwrapper.setView({'columns': columns}); chartwrapper.draw(); }); </code></pre> <p>In your html,</p> <pre><code>&lt;button value="[0, 1, 3]" &gt;Hide columns&lt;/button&gt; &lt;button value="null"&gt;Expand All&lt;/button&gt; </code></pre> <p>(Note: <code>eval</code> used for conciseness. Use what suits your code. It's beside the point.)</p>