SheetMirror embeds a live Google Sheets spreadsheet into any WordPress post or page using a simple shortcode. Unlike basic CSV importers, SheetMirror can connect to the Google Sheets API v4 to retrieve not just your data, but the full visual formatting of every cell – giving your readers a table that looks exactly like the one you designed in Google Sheets.
Spreadsheet data on the web is often reduced to a bland, unstyled grid. The formatting you spent time on – the bold headers, the colour-coded rows, the carefully aligned columns – disappears entirely. SheetMirror solves this by faithfully translating your Google Sheets formatting into standard HTML and inline CSS, so the table your readers see on your site is a true reflection of the original.
API Mode (recommended)
Uses the Google Sheets API v4 to retrieve both cell values and full formatting metadata. A Google Cloud API key is required. This is the mode that enables all the rich formatting features described below.
CSV Mode (no API key needed)
Fetches data via Google’s public CSV export URL. No API key or account is required – just share your sheet as “Anyone with the link can view.” Cell values are displayed in a clean, readable table, without formatting. Ideal for simple data tables where styling is not a priority.
When API Mode is enabled, SheetMirror retrieves and applies the following formatting properties from your spreadsheet:
<strong>), italic (<em>), underline (<u>), and strikethrough (<s>) are each rendered using the appropriate semantic HTML element.font-family value.pt values, matching the size as set in Google Sheets.color value.background-color values. White and black (the default colours) are suppressed to avoid overriding your theme’s own styling.rowspan and colspan attributes.border-{side} declarations.white-space and overflow rules. The Overflow mode (content spilling into adjacent cells) is a layout behaviour specific to Google Sheets and cannot be reproduced in an HTML table.direction: rtl.<a> tags with target="_blank" rel="noopener noreferrer".<colgroup> elements, reproducing the exact column proportions of the original. Active when the “Auto column width” option is off (the default).height style on the <tr> element, preserving the vertical spacing of the original spreadsheet. Active when the “Auto column width” option is off (the default).Each registered table can be configured independently with the following options:
<thead> element using <th> cells with scope="col", improving accessibility and allowing header-specific styling.table-layout: auto). The “Auto” badge is shown in the table list only when this option is enabled.All API and CSV responses are cached using WordPress transients for 5 minutes, keeping your page loads fast and your API quota usage low. A “Clear Cache” button is available for every registered table so you can force a refresh immediately after updating your spreadsheet.
After registering a table in Settings SheetMirror, embed it anywhere using its tag name as a shortcode:
[your_tag_name]
For example, if you registered a table with the tag sales_2026, place [sales_2026] in any post, page, or widget area.
Scaling the table
An optional scale attribute lets you render the table at a percentage of its original size. Accepted values are integers between 10 and 200.
[sales_2026 scale="50"]
This plugin connects to external services operated by Google. Depending on the fetch mode you choose, one or both of the following connections will be made.
When API Mode is enabled, this plugin sends requests to the Google Sheets API v4 to retrieve cell values and formatting metadata from your spreadsheet.
When CSV Mode is enabled, this plugin fetches data from Google’s public CSV export URL for your spreadsheet.
/export?format=csv), provided by Google LLC.When CSV Mode is enabled and a sheet name is specified in the cell range, this plugin fetches the spreadsheet’s HTML view page in order to resolve the sheet name to its numeric identifier (gid). This request is made once per spreadsheet and the result is cached together with the table data.
/htmlview), provided by Google LLC.If you find this plugin useful and would like to support its development,
you can make a voluntary donation via PayPal.
Your support helps keep this plugin maintained and improved.
Thank you!
PayPal: https://www.paypal.me/Kasuga16