Free tools Windows power users keep installed
One-click scans. No signup required.
The quickest way to publish Google Sheets data is File → Share → Publish to web. Choose the whole spreadsheet or one tab, select a format, click Publish, then copy either Google’s read-only URL or the generated embed HTML into your site. Published content updates from the sheet automatically, although Google says changes can take a few minutes to appear.
This guide explains the native embed, how to show a specific tab or range, safer alternatives for private data, update behavior, troubleshooting, and an API-based workflow when an iframe is not flexible enough.
Publish a Google Sheet in five steps
- Open the spreadsheet. Remove columns, rows, comments, or tabs that visitors must not see before publishing.
- Open the publishing dialog. In Google Sheets, select File → Share → Publish to web.
- Choose the scope. The first menu lets you publish the entire spreadsheet or an individual sheet tab. Selecting one tab is safer when other tabs contain internal data.
- Choose a format. Use Web page for a linked read-only page, or choose the spreadsheet option that provides an embeddable frame when you want the table displayed inside your site.
- Click Publish and confirm. Copy the published URL for a normal link. For an inline display, select Embed, copy the supplied
<iframe>, and paste it into an HTML block, CMS custom-code field, or page template.
The published view is read-only. Visitors can see the values, charts, and cell formatting included in the published scope, but they cannot see or edit the underlying formulas. Publishing does not turn a private spreadsheet into an authenticated application; the audience setting can make the result available to everyone on the web, everyone in an organization, or a selected group, depending on the account and Workspace policies.
Basic iframe example
Google generates the correct URL and dimensions for your selection. A generic structure looks like this:
#1 Best Overall
- Mastering Google Sheets: A Step by Step Handbook for Beginners to Simplify Data Analysis, Boost Productivity, and Unlock Your Full Spreadsheet Potential
- ABIS BOOK
<iframe src="YOUR_PUBLISHED_SHEET_URL" width="100%" height="600" frameborder="0"></iframe>
Replace the placeholder with the exact URL Google provides. Keep the frame responsive by using width="100%"; adjust height or add CSS if your page needs a different viewing area.
Show one tab or a precise range
Google’s published URL accepts display parameters. They change what the visitor sees; they are not a permission system. Anyone who can access the published result may still see all data included by the publication scope.
| Parameter | Purpose | Example |
|---|---|---|
gid |
Selects a worksheet tab by its numeric ID. | gid=123456789 |
range |
Limits the displayed cells to a range. | range=A1:B14 |
widget |
Controls whether the sheet-tab bar is shown. | widget=false |
headers |
Shows or hides row and column headers. | headers=false |
chrome |
Shows or hides title and footer interface chrome. | chrome=false |
Append parameters with ? when the URL has none, or & when it already contains a query string. For example:
https://docs.google.com/...?gid=123456789&range=A1:B14&widget=false&headers=false&chrome=false
Use gid to publish a particular tab, then use range to show only the relevant rows and columns. Treat this as presentation control, not redaction: delete or move sensitive values out of the source before publishing.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Keep the website view current
Edits to the source sheet are reflected in the published version automatically. Google notes that propagation can take a few minutes, so do not use the published page as an immediate, transaction-grade status feed.
When an update is missing
- Wait several minutes, then reload the page in a private window.
- Check that you edited the same tab and range that was published.
- Confirm that a filter, hidden row, or changed range is not making the new value appear outside the visible scope.
- Inspect the iframe source URL; a copied old URL may point to a different spreadsheet or tab.
- If the publication is stale for an extended period, stop publishing and publish again, then replace the embed URL.
Stop publishing
Return to File → Share → Publish to web, open Published content & settings, and choose Stop publishing. Removing or changing the iframe on your site alone does not necessarily disable the public published URL, so stop the publication when the URL itself must no longer work.
Rank #2
Choose the right integration method
| Method | Setup effort | Presentation control | Access model | Update behavior |
|---|---|---|---|---|
| Publish to web plus iframe | Lowest | Limited to Google’s published view and URL options | Public or account-policy audience | Automatic, with possible delay |
| Google Visualization API | Moderate JavaScript development | Custom charts, tables, and interactions | Public or link-shared source; private files require user credentials and authorization | Your code controls refresh and rendering |
| Google Sheets API v4 | Highest; credentials and application code | Full custom interface and write operations | Authenticated access for private data | Your application controls caching and refresh |
| Apps Script web app | Moderate scripting and deployment | Custom browser interface backed by Apps Script | Deployment access setting determines who can open it | Script determines reads, writes, and refreshes |
| Google Sites insertion | Low if the site is in Google Sites | Google Sites layout controls | Site publication and source-file audience | Visitors see changes after the site is published and the source updates |
Google Sites: the no-code route
In Google Sites, open the Insert panel and add a Sheets file or chart. You can also use Embed for HTML, CSS, or JavaScript. Google recommends publishing the source file first when all visitors need access. The Google Site itself must be published before visitors can see the inserted content or subsequent site changes.
When an API or custom page is better
Visualization API for interactive displays
The Google Visualization API can read a public or link-shared spreadsheet as a data source and render a chart or table that matches your site’s design. It is appropriate when you need sorting, custom labels, filters, or a dashboard rather than Google’s standard frame. A private spreadsheet requires an end-user credential and authorization flow; do not assume that hiding the sheet URL provides private access.
Sheets API v4 for authenticated applications
Use the Sheets API v4 when your application must read or write private data. Its REST surface includes methods such as spreadsheets.get, spreadsheets.create, and spreadsheets.batchUpdate. Plan credential storage, OAuth scopes, token refresh, rate handling, and server-side caching. Never put a service-account key or OAuth client secret in browser JavaScript.
Apps Script web apps
Apps Script can be published as a web app accessible from a browser. This is useful for a small custom interface, transformation logic, or controlled write form. Set the deployment’s execution and access options deliberately, validate incoming values, and avoid returning fields that the browser should not receive.
Security and privacy checklist
- Publish a copy or clean tab. Remove names, email addresses, tokens, hidden calculations, and other sensitive fields before enabling publication.
- Review the audience. Confirm whether the result is visible to everyone on the web, everyone in your organization, or a selected group.
- Do not rely on URL parameters for secrecy.
range,gid, and header options shape the display; they do not replace access control. - Check charts and formulas. Published viewers see rendered values and charts, not editable formulas, but displayed values can still reveal confidential information.
- Revoke deliberately. Use Stop publishing when the public URL must be disabled.
Responsive and accessible embedding
Give the iframe a meaningful title, for example title="Monthly sales summary", so screen-reader users understand its purpose. Keep the width fluid and test the fixed height on narrow screens. Very wide sheets may require horizontal scrolling; publish a focused range or create a mobile-specific tab instead of shrinking text until it is unreadable.
<iframe src="YOUR_PUBLISHED_SHEET_URL" title="Monthly sales summary" width="100%" height="600" style="border:0" loading="lazy"></iframe>
Test the page on the same domain, in an incognito window, and while signed out of Google. This catches accidental dependence on your own account permissions.
Rank #3
- The Google Workspace Bible: [14 in 1] The Ultimate All in One Guide from Beginner to Advanced Including Gmail, Drive, Docs, Sheets, and Every Other App from the Suite
- ABIS BOOK
Troubleshooting common failures
The iframe says the file cannot be found
The source may not be published, the URL may have been truncated, or an administrator may restrict external sharing. Reopen Published content & settings, publish the intended tab again, and paste the newly generated URL without modifying its host or path.
Visitors are asked to sign in
The publication audience or Workspace policy is restricted. If the page is intended for the public, ask an administrator whether external publication is allowed and select the appropriate audience. For genuinely private data, use authenticated API access rather than a public embed.
The wrong tab or too much data appears
Verify the numeric gid and the range spelling. A sheet’s visible name is not the same as its gid. Publish a single tab when possible, then use range only to narrow the display.
Changes do not appear
Allow a few minutes for Google’s published view to refresh, reload without browser cache, and confirm the edit is inside the published scope. Republish if the publication itself appears stuck.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →The layout is clipped
Increase iframe height, allow horizontal scrolling, or reduce the published range. For a branded responsive table, retrieve data through the Visualization API or Sheets API and render your own markup.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If your goal is to capture the published sheet or any website as an image or PDF, ScreenshotNeo provides a one-request screenshot API and MCP server. It accepts a URL and returns PNG, JPEG, WebP, or PDF. Cookie and consent banners, newsletter popups, and chat widgets are removed before the shot; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result.
After publishing the sheet, call the API with cURL (see the ScreenshotNeo documentation for all options):
Rank #4
- hole punched
- high quality card stock
- 4 pages
- made in USA
- keyboard shortcuts
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://docs.google.com/...?gid=123456789&range=A1:B14 -o sheet.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://docs.google.com/...?gid=123456789&range=A1:B14"}, timeout=90)
r.raise_for_status()
open("sheet.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://docs.google.com/...?gid=123456789&range=A1:B14' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('sheet.webp', Buffer.from(await res.arrayBuffer()));
An MCP server lets AI agents such as Claude or Cursor call take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.
FAQ
Frequently Asked Questions
Can I publish only a chart from a spreadsheet?
Yes. In Google Sites you can insert a chart directly. For other sites, publish the relevant sheet and use the generated embed, or render chart data with the Visualization API for more control.
Will viewers see my formulas?
No. Google’s published view exposes rendered values and charts, not editable formulas. Review the displayed values anyway because they may contain information you intended to keep private.
Can I let visitors edit an embedded sheet?
The Publish to web view is read-only. Editing requires sharing the spreadsheet with appropriate permissions or building an authenticated application with the Sheets API.
Is a published sheet suitable for real-time monitoring?
It is suitable for ordinary updates, but Google documents that changes can take a few minutes to propagate. Use an API-backed application when your requirement is controlled refresh timing or transactional data.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

