How to Add a Header in Google Sheets
Google Sheets doesn't have a dedicated "header" button the way a word processor does — but there are several methods that accomplish the same goal, depending on what you actually mean by "header." Whether you want a frozen title row that stays visible while you scroll, a printed page header, or a visually styled top row that labels your data, each approach works differently and suits different situations.
What Does "Header" Mean in Google Sheets?
Before diving into steps, it helps to clarify the term. In spreadsheet context, "header" can mean:
- A frozen row — a row locked at the top of the screen so it remains visible as you scroll down through data
- A bold/styled label row — a visually formatted first row that identifies each column
- A print header — text that appears at the top of every printed page (like a document title or page number)
Each of these is set up differently in Google Sheets, and the right choice depends on your workflow.
Method 1: Freeze the First Row as a Header 🧊
The most common use case is keeping column labels visible while scrolling through a long dataset. This is done by freezing rows.
Steps:
- Open your Google Sheets document
- Click on View in the top menu
- Hover over Freeze
- Select 1 row
The first row is now frozen. A thick grey line appears just below it, indicating the freeze boundary. As you scroll down, row 1 stays fixed at the top.
You can also freeze more than one row — useful if your header spans two rows, or if you have a title row above a label row. Just select 2 rows or click a specific cell and choose Up to current row for a custom freeze point.
On mobile (Android/iOS): Tap the row number to select the row, then tap the three-dot menu or look for the Freeze option in the row context menu. The mobile app supports freezing but with a slightly different interface depending on the platform version.
Method 2: Style the First Row to Look Like a Header
Freezing the row keeps it in place — but it doesn't automatically make it look like a header visually. For that, you format it manually.
Common header styling:
| Style Element | How to Apply |
|---|---|
| Bold text | Select row 1, press Ctrl+B (or Cmd+B on Mac) |
| Background color | Highlight row → Fill color icon in toolbar |
| Center alignment | Alignment button in toolbar |
| Font size increase | Font size dropdown in toolbar |
| Text color | Font color icon in toolbar |
To select the entire first row at once, click the row number "1" on the left edge. This highlights the full row so any formatting applies across all cells in it.
A well-styled header row helps collaborators quickly read your sheet and makes data exports and screenshots look professional.
Method 3: Add a Print Header
If you're preparing a Google Sheet to print — reports, invoices, data summaries — you may want a header that appears on every printed page, separate from your spreadsheet data. This is different from a frozen row.
Steps:
- Go to File → Print (or press Ctrl+P / Cmd+P)
- In the print settings panel on the right, look for Headers & footers
- Toggle on the header options you want: Page numbers, Workbook title, Sheet name, Current date, or Current time
- For a custom printed header with your own text, click Edit custom fields at the bottom of that section
The print header sits outside the spreadsheet grid and only appears on the physical or PDF output — not in the normal editing view.
Method 4: Designate a Header Row for Filters and Sorting
When you apply a filter to your data in Google Sheets, the first row is automatically treated as the header row — as long as your data is structured with labels in row 1.
To apply a filter:
- Click anywhere in your data range
- Go to Data → Create a filter
- Dropdown arrows appear in the first row
Google Sheets assumes row 1 contains your column headers. It won't filter that row — only the rows below it. This behavior is automatic and doesn't require additional setup beyond having labeled columns.
Variables That Change Your Approach
How you set up headers in Google Sheets depends on several factors: 🎯
- Data length — Short datasets may not need frozen rows at all; long ones almost always do
- Collaborative use — Shared sheets benefit from visible, styled headers so all collaborators interpret the data the same way
- Print output — If the sheet is purely digital, print headers are irrelevant; if it feeds reports or PDFs, they matter a lot
- Mobile vs. desktop use — Mobile users experience frozen rows differently, and the freeze feature behaves slightly differently depending on your app version
- Integration with other tools — Sheets exported to Excel, Google Data Studio, or other platforms may handle header rows differently based on how those tools detect data structure
A sheet used only by one person for a simple list has very different needs than a multi-tab workbook shared across a team and exported weekly as a PDF.
How Your Setup Shapes the Right Method
Someone building a personal budget tracker might only need bold labels in row 1 — no freezing required. A data analyst working with hundreds of rows almost certainly needs freezing. Someone generating weekly printed reports needs to dig into the print settings. A team sharing a sheet for collaborative data entry benefits from both a frozen row and consistent visual styling so everyone reads the columns the same way.
The mechanics are straightforward once you know which "header" you're actually after — but which combination makes sense depends entirely on how your specific sheet is structured and how it's being used.