Plugin Directory

Inline Google Spreadsheet Viewer

Embeds public Google Spreadsheets, Apps Scripts, or CSV files in WordPress posts or pages as HTML tables or interactive charts, and more.

Version 0.9.16

  • Feature: Add support for customizable column headers using new header_cols attribute.

Version 0.9.15

  • Feature: Add support for Google Charts' vAxes configuration option (use the chart_v_axes attribute in your shortcode).

Version 0.9.14

  • Usability: Show built-in help tabs on all post types, not just the Post type.

Version 0.9.13

  • Bugfix: Fix bug wherein a lack of a buttons member in the DataTables defaults object caused a JavaScript error.

Version 0.9.12

  • Usability: The plugin's settings screen now reports which user roles are SQL-capable.
  • Developer:
    • Update DataTables library to version 1.10.9.
    • DataTables extensions have been updated to their current versions.
    • The Buttons extension supercedes the TableTools and ColVis extensions; the latter two have been removed.
      • You may need to visit the plugin's settings screen and rewrite your DataTables defaults object value for the new extension to work. If you are not sure what defaults you want, simply leave that field blank and press Save Changes.
      • Only modern (HTML5 capable) Web browsers are able to use the buttons, as they no longer use Flash. While a Flash-based fallback is available to support legacy (IE9 and earlier) browsers, it no longer ships with this plugin.

Version 0.9.11

  • Feature: Gauge charts are now fully supported.


  • Bugfix: The FixedHeader and FixedColumn DataTables extensions no longer emit HTTP 404 errors.
  • Developer:
    • Update DataTables library to version 1.10.8.
    • DataTables extensions have been updated to their current versions.
    • The TableTools and ColVis extensions have been deprecated in this release. The functionality they provided will be replaced by the Buttons and the Select extensions in an upcoming release.


  • Bugfix: Fix an issue where missing DataTables settings caused DataTables enhancements not to load.

Version 0.9.10

  • Feature: The "Extras" tab in the gdoc QuickTag dialog now allows customizing HTTP transport options including an HTTP timeout, the User-Agent header, and SSL/TLS verification.
  • Usability: The QuickTags dialog now includes more detailed descriptions of the customization options it exposes.
  • Bugfix: The gdoc QuickTag button no longer incorrectly outputs shortcode attributes when multiple attributes are changed from their defaults.


  • Feature: Extend support for the DataTables defaults object to include the colVis extension. This lets you supply default initialization options that customize the behavior or display of the "Show/Hide Columns" button for all your DataTables-enhanced tables.


  • Bugfix: Fix bug introduced in last update where spreadsheet URL was improperly built in some cases.

Version 0.9.9

  • Feature: Improved QuickTags button.
    • The QuickTags dialog box now provides fields for a query and title attribute value in addition to your datasource's key. It also provides a tabbed interface for other HTML integrations and checkboxes for some plugin features (use_cache and linkify).
  • Bugfix: Fix an issue where charts failed to display if their datasource was a Google Spreadsheet and no query was used to select columns.


  • Bugfix: Correct invalid markup when producing HTML tables.
  • Security: Harden plugin against file path disclosure and directory listing attacks. (Don't worry, there is no known active exploit; this is simply a preventative measure.)

Version 0.9.8

  • Feature: The chart attribute can now be used with CSV keys. This means you can make a Google Chart out of the data in any CSV file.


  • Bugfix: Fix an issue wherein DataTables defaults, when applied via HTML5 data- attributes, were inherited across some DataTables invocations.

Version 0.9.7

  • Feature: MySQL databases can now be used as a data source. Use the keyword wordpress as the value of the key attribute and a valid MySQL SELECT statement as the value for the query attribute to retrieve data from your WordPress database. A MySQL connection URL (like mysql://user:password@example.com/database) can be used to connect to remote MySQL servers.
    • This feature must be enabled by an administrator in the plugin's settings screen before it is available. Even after it's enabled, only users granted the special gdoc_query_sql_databases capability can author shortcodes that take advantage of this feature.


  • Bugfix: Using a custom DataTables defaults object with slashes no longer fails, and the tableTools property can now be successfully overridden, too.


  • Bugfix: Fix an issue where using multiple gdoc shortcodes all with the same key failed to apply some DataTables-enhanced features to invocations of the shortcode after the first one.


  • Security: A Cross-Site Request Forgery (CSRF) vulnerability existed in version 0.9.6 of Inline Google Spreadsheet Viewer that could result in denial of service if an attacker sent specially-crafted HTTP GET requests to the site. This patch addresses the issue by adding a synchronizer token to verify that requests originated from the plugin itself. Only version 0.9.6 is known vulnerable, but all users are encouraged to update.

Version 0.9.6

  • Feature: The query attribute now works with arbitrary CSV inputs. This means you can perform Google Query Language operations on the data in any CSV file.
  • Usability: The gid attribute is no longer required when loading non-default worksheets from new Google Sheets. Simply include the full URL (including the #gid=123456 fragment) as your key and the gid part will be automatically detected. Old-style Google Spreadsheets still need to explicitly set the gid attribute to load a non-default worksheet.

Version 0.9.5

  • Feature: Convert any CSV data into a feature-rich HTML table, even if that data is not sourced from a Google Spreadsheet or Apps Script output.
    • This feature works exactly like the standard Google Spreadsheet viewer functions, supporting all the same shortcode attributes and the various DataTables enhancements (but not query or chart), except it can take any properly formatted CSV file as input. The plugin also detects files served with the text/csv HTTP Content-Type header and parses those similarly, so you can supply a web service endpoint that produces CSV output as well as a .csv file.
  • Bugfix: Fix an issue where DataTables enhancements were not applied to tables with custom classes unless they were rendered on the same page as a shortcode-invoked table.

Version 0.9.4

  • Feature: Per-shortcode configurable HTTP transport options. Use the new http_opts shortcode attribute to configure an individual shortcode's HTTP behavior. The attribute value is expected to be a JSON object. This is particularly useful in conjunction with the new Google Apps Script Web App integration, allowing you to send POST as well as GET queries, control script execution blocking, network timeouts, and more. All of WordPress's HTTP API arguments are supported.
    • For example, if your spreadsheet or Web App response is very large and you have a very slow connection, you can increase the HTTP timeout from the default 5 seconds to 20 seconds with a shortcode like this: [gdoc key="ABCDEFG" http_opts='{"timeout": 20}']
  • Developer: The gdoc_webapp_html filter now passes a second argument, which is an array of the shortcode's attributes and their values.
  • Bugfix: Fix an issue where GAS Web App requests with more than one URL querystring parameter failed to send the remaining parameters properly encoded.

Version 0.9.3

  • Feature: Google Apps Script Web Apps integration. This feature lets you display the output of any public GAS Web App on your WordPress post or page the same way you display a spreadsheet. Instead of a table or chart, however, the output is defined by the Web App itself. This lets you display any arbitrary data you want in any way you want via Google Apps Script (a kind of web service macro), without necessarily storing that data in a spreadsheet.
    • To retrieve the output of the Web App, supply its public URL as the key of the shortcode, like [gdoc key="https://script.google.com/macros/s/ABCDEFG/exec"]
    • The new gdoc_webapp_html filter lets you hook the HTTP response body of the Web App in the same fashion as you might filter the_content of a WordPress post.

Version 0.9.2

  • Feature: FixedHeader extension integration lets you freeze the table header (its <thead> element contents), the table footer (<tfoot>), left- or right-most column while scrolling vertically or horizontally by supplying a special class value.
    • Use the special class value FixedHeader-top to freeze the table header, FixedHeader-bottom to freeze the table footer, and FixedHeader-left or FixedHeader-right to freeze the left- or right-most column, respectively.
    • You can use more than one of the above class values for the same table. For instance, to freeze the table header, left, and right column all at once, use a shortcode like [gdoc key="ABCDEFG" class="FixedHeader-top FixedHeader-left FixedHeader-right"].


  • Bugfix: Fixes an issue where DataTables failed to initialize after first installation unless the Settings page was visited.
  • Tested with WordPress 4.2.


  • Bugfix: Fix "catchable fatal error" when certain site-wide DataTables defaults are used.


  • Bugfix: Treat user-supplied DataTables defaults as JSON. This fixes an issue where user-supplied DataTables defaults were ignored.

Version 0.9.1

  • Feature: Apply DataTables enhancements to <table>s with arbitrary class values anywhere on your blog, not just those created with the gdoc shortcode.
    • Go to the plugin's new settings screen to enter a space-separated list of class names that should have DataTables enhancements applied to them. This is useful if you use other plugins that generate HTML tables, or want to write your own HTML tables, and would like to have DataTables's searching, paging, sorting, and other enhancements applied to those tables, too.
  • Feature: Define site-wide DataTables defaults.
    • The new plugin settings screen includes an advanced configuration option that lets you supply site-wide DataTables defaults. All DataTables-enhanced tables will use the specified defaults unless a given table overrides the defaults in its shortcode, HTML, or JavaScript initialization. This is useful if you use many tables with non-default settings and want to have one place to make changes to all of them, instead of repeating the non-default settings in each shortcode.
    • If your tables have changed after updating to this version, restore the plugin's defaults by visiting the plugin's settings screen and re-saving its options. (This is sometimes necessary because default settings storage location have been moved around in this release. Sorry about any inconvenience.)

Version 0.9

  • Feature: Fully customizable DataTables.
  • Developer: Update DataTables library to version 1.10.6.

Version 0.8.7

  • Developer: New gdoc_query filter lets you hook into the Google visualization API queries supplied in the query attribute of the shortcode. Useful for dynamically generating queries for pre-processing, such as SELECTing only rows referencing the current WordPress user by username or other identification.

Version 0.8.6

  • Feature: Automatically detect default site language and display some DataTables labels and buttons in that language.
    • Use the new lang attribute to declare that a particular spreadsheet's contents is in a language other than the default. For instance, use lang="nl-NL" to declare that a given spreadsheet is in Dutch.
    • Translations are available for all DataTables internationalization plugins.

Version 0.8.5

  • Feature: DataTables-enhanced tables now include the Responsive plugin enabled by default. This plugin further improves narrow and liquid layouts by displaying columns that won't fit without scrolling horizontally in a child row instead. If you want to keep the old behavior (horizontal scrolling), add the no-responsive class to your shortcode, like this: [gdoc key="ABCDEFG" class="no-responsive"]
  • Developer: Update DataTables libraries to version 1.10.5.

Version 0.8.4

  • Developer: Two new plugin filters, gdoc_table_html and gdoc_viewer_html, allow other plugin or theme authors to customize the output produced by the gdoc shortcode. See the Other Notes page for documentation and implementation notes.
  • Bugfix: Correctly declare JavaScript dependencies.

Version 0.8.3

  • Bugfix: Stricter whitespace checking fixes an issue where space/newline character sequences were unintuitively interpreted.

Version 0.8.2

  • Feature: WordPress Embeds support provides OEmbed emulation, so now you don't even need to use a shortcode. In other words, pasting your Spreadsheet's key onto its own line is now the equivalent of invoking a shortcode like this: [gdoc key="https://docs.google.com/spreadsheets/d/ABCDEFG/edit"]
    • This feature is only available for "new" Google Spreadsheets.

Version 0.8.1

  • Bugfix: Properly serialize and store responses from Google with mismatched encoding.
  • Bugfix: Properly save and load caches with shortcodes that use the gid attribute.
  • Bugfix: Uninstaller correctly clears plugin cache.

Version 0.8

  • Feature: Built-in caching. To improve page load speeds, shortcodes whose keys output spreadsheet table data will be cached for ten minutes by default.
    • You can use the new expire_in attribute to set a custom cache lifetime (in seconds). For instance, to cache for 1 minute instead of 10, use [gdoc key="ABCDEFG" expire_in="60"]
    • To turn off caching for a specific spreadsheet, set the use_cache attribute to no, like [gdoc key="ABCDEFG" use_cache="no"]. Disabling the cache for a spreadsheet is only recommended for relatively small datasets (under 100 rows or so) that change often, or for debugging purposes.
    • Changing the query in a shortcode will also create a new cache, since a different query may return different data.

Version history has been truncated due to WordPress.org plugin repository readme.txt file length limitations. For historical change log information, please refer to the plugin source code repository.

Requires: 3.5 or higher
Compatible up to: 4.3.1
Last Updated: 2 months ago
Active Installs: 5,000+


4.5 out of 5 stars


28 of 31 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

0,1,0 100,1,1
100,1,1 0,1,0
100,1,1 100,1,1 100,1,1 100,1,1