Description
SheetFusion turns any publicly published Google Sheet into a fully interactive table on your WordPress site in seconds — no API key, no OAuth, no complicated setup. Publish your sheet, paste the shortcode, done.
No personal visitor data is ever transmitted to external servers.
Features
- Client-side search — full-text search across all columns
- Sortable columns — click any header to sort
- Pagination — configurable rows per page
- Export buttons — CSV, Excel, PDF, and Print
- Column visibility toggle — let readers show/hide columns
- Server-side filtering — pre-filter rows by any column value
- Auto-link columns — automatically turn bare URLs into clickable links in any column you choose
- Row cap — configurable maximum rows per table prevents memory issues on large sheets
- Four visual themes — Default, Stripe, Minimal, and Dark
- Transient caching — reduces Google requests; configurable duration
- Conditional asset loading — DataTables scripts load only on pages that contain a [sheetfusion] shortcode; zero overhead everywhere else
- Admin dashboard — save and manage all your sheets with one-click shortcode copying
- Accessible — semantic HTML, ARIA attributes, keyboard-navigable tables
How it works
SheetFusion fetches your sheet in CSV format via Google’s public gviz/tq endpoint. No authentication is required as long as the sheet is published to the web.
External Services & Third-Party Libraries
This plugin connects to the following external service:
- Google Sheets (
docs.google.com) — your WordPress server fetches the sheet data directly using the Sheet ID you provide. No personal visitor data is sent; only the Sheet ID and tab name are included in the request. Please review Google’s Privacy Policy and Terms of Service.
The following third-party JavaScript and CSS libraries are bundled locally within the plugin (no external CDN requests are made to your visitors’ browsers):
- DataTables 1.13.8 — datatables.net — MIT licence
- DataTables Buttons 2.4.2 — MIT licence
- pdfmake 0.2.7 — pdfmake.org — MIT licence
- JSZip 3.10.1 — stuk.github.io/jszip — MIT licence
Support
Have a question or found a bug? Post in the Support tab above and we’ll get back to you.
Installation
Via the WordPress plugin installer (recommended)
- In your WordPress dashboard go to Plugins Add New.
- Search for SheetFusion and click Install Now, then Activate.
- Go to SheetFusion My Sheets in the admin menu and add your first sheet.
Manual installation via FTP
- Download the plugin zip and extract it.
- Upload the
sheetfusionfolder to/wp-content/plugins/. - Activate SheetFusion via Plugins Installed Plugins.
- Go to SheetFusion My Sheets in the admin menu and add your first sheet.
Publish your Google Sheet first
In Google Sheets: File Share Publish to the web select your sheet tab Publish.
FAQ
-
Where do I find my Sheet ID?
-
It’s the long string in your Google Sheets URL between
/d/and/edit:
https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit -
My sheet is not loading — what should I check?
-
Make sure the sheet is published to the web (File Share Publish to the web). The plugin cannot access private sheets.
-
Can I display multiple sheets on the same page?
-
Yes. Each shortcode renders a completely independent table with a unique ID.
-
How do I filter rows to only show certain data?
-
Use the
filter_columnandfilter_valueattributes. For example, to show only rows where column 2 contains “London”:[sheetfusion id="..." sheet="Sheet1" filter_column="2" filter_value="London" filter_mode="contains"] -
Yes — set
export=""to hide all buttons, or pass a specific list:export="csv,print". -
How do I change the theme?
-
Add
theme="dark"(orstripe/minimal) to your shortcode. You can also set a site-wide default in SheetFusion Settings. -
How do I make URLs in my sheet clickable?
-
Use the
link_columnsattribute with a comma-separated list of 1-based column numbers. For example, to auto-link URLs in columns 1 and 3:[sheetfusion id="..." sheet="Sheet1" link_columns="1,3"] -
My sheet has tens of thousands of rows — will it work?
-
SheetFusion renders tables in the browser, so very large sheets can affect page performance. A configurable row cap (default 5,000) is applied to prevent memory issues. Increase or decrease it in SheetFusion Settings.
-
Can I force a cache refresh?
-
Yes, but only administrators can do this. Add
refresh="1"to your shortcode. This bypasses the cache for that render only. -
Does this plugin collect or transmit visitor data?
-
No. SheetFusion does not collect, store, or transmit any personal data about your site’s visitors. The only external request it makes is from your server to Google to fetch the sheet content — no visitor IP addresses or identifiers are included.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“SheetFusion” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “SheetFusion” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.1.0 — 2026-03-01
- Security: removed
style=attribute fromwp_ksesallowlist in cell output — eliminates a CSS injection vector from sheet data - Performance: DataTables assets now load conditionally only on pages that contain a [sheetfusion] shortcode (zero overhead on all other pages)
- Standards: replaced raw inline
<script>output withwp_add_inline_script()— correct WordPress practice - Standards: wrapped all raw SQL queries in
$wpdb->prepare()(deactivation hook and AJAX cache-clear handler) - Standards: replaced deprecated
current_time('timestamp')withtime() - i18n: moved all user-facing JS strings into
wp_localize_scriptso they are translatable - i18n: removed deprecated
document.execCommand('copy')fallback; Clipboard API used exclusively - Feature: configurable row cap (default 5,000) with admin notice when limit is reached — prevents memory exhaustion on large sheets
- Feature:
link_columnsshortcode attribute lets you specify exactly which columns should auto-link bare URLs (previously hard-coded to column 1 only) - Feature:
refresh="1"attribute now restricted to administrators to prevent cache-busting by unprivileged users - Maintenance: bumped version to 2.1.0 and updated Tested up to: 6.7
- Added
uninstall.phpto clean up all plugin data on deletion
2.0.0 — 2026-02-01
- Complete rewrite — proper multi-file plugin structure
- Admin dashboard to save and manage sheets
- Export buttons: CSV, Excel, PDF, Print (DataTables Buttons extension)
- Column visibility toggle
- Four visual themes: Default, Stripe, Minimal, Dark
- Global settings: cache duration, default page length, default theme
- Improved security: nonce verification on all AJAX requests, wp_kses sanitisation on cell output
- Unique table IDs using wp_generate_uuid4() — supports multiple tables per page
- HTTP status code check with user-friendly error messaging
- Translation-ready (text domain: sheetfusion)
1.0.0 — 2026-01-01
- Initial release
