Print in Google Sheets

Before 2017, the Google Sheets print experience had few to no settings controls, take-what-you-get scale and margin options, zero customization, and painfully no Sheets-based preview. At the time, 70% of the top ten feature requests for the Docs suite were for printing improvements. These pain points played a crucial sales role in preventing enterprise teams from switching over to Google.

My role

I led the design effort to solve this problem in Google Sheets. I closely collaborated with a cross-functional team of engineers, product managers, and user researchers from the kickoff to the final launch.


Early on in the process, we collected feedback from sales, online forums, and everyday users. This effort started as a way to solve a series of user pain points, but we wanted to understand the needs better to help us prioritize and determine what’s essential from what’s nice to have. We wanted to know why ink on paper, as opposed to more Googley alternatives, like mobile screens or tablets.

We learned people print for

  1. Comfort
  2. Easy sharing
  3. Editing offline
  4. Note scribbling
  5. Legacy workflows

Throughout the process, we validated our design with usability tests during the early ideation phase, to the high-def design prototype phase where we had a clearer definition of the shape of the user experience, to Beta build testers, and finally post-launch tracking of success metrics.


Unlike printing documents or slides, spreadsheets don’t simply translate a screen’s view to a page’s view. Instead, several factors affect the pages outputted and impact the readability of data, the mapping of rows and columns to headers (freezing), and the distribution of elements across multiple pages. The best-case scenario is when a spreadsheet is small enough to fit everything on one page and still be readable. When this is not possible, it requires pagination. Pagination introduces design and UX challenges connected to the shape of data and the quirks of user preferences.

The print page distribution algorithm may work with many data scenarios. It works like this: if the data fits based on the size of the column’s width or height and the existence of frozen columns and rows and headers and footer, then add to the page; otherwise, add to another page. However, with this approach, there are often many surprises. Sometimes, it’s just the nature of imposing a page-based model on something that’s designed without pages in mind. However, when the data isn’t symmetrical and instead has multiple tables on one sheet, dashboards with visuals, then custom set page breaks dramatically help with this.

Preview and settings

Because the old print experience had no page preview, users had to jump to the browser’s preview to see the impact of setting changes on pagination. This often resulted in unhappy page break surprises and wasted paper. The team and I designed and built a print preview experience specific to Google Sheets that helped ensure that the settings changes resulted in the desired pagination and data scaling outcomes.

Settings: Quick vs Custom


When printing spreadsheets, scale and pagination are closely interconnected. Within our designs, we optimized for fast scale options like “Fit to width” and “Fit to height” to focus information all in one place, but also enabled a custom scale number input for when those options aren’t a good enough solution to user needs.


Margins have default fast menu options available, such as “Normal,” “Narrow,” and “Wide,” but when those options are not good enough, we have a custom margin creator. The custom margin editor solves asymmetrical margin scenarios such as the one that came up in user studies where people explicitly said they liked to scribble notes in the margin. Users can either drag the lines manually or type in an exact number.


We created a way to insert key document details, such as Page numbers, Sheet names, and Dates, into the header and footer of spreadsheets. This helps users orient themself when moving between pages.
There are two ways to do this. There’s a fast way with check boxes and explicit constraints that auto-place these strings into specific locations. For use-case scenarios where these defaults are not good enough, we added a custom header option (shown on the left) that allows inserting formatted text widgets (like a script builder), free text writing, and page location choices.

Custom page breaks

We created an alternative Custom Page Breaks builder for situations when the default page breaks aren’t good enough. This allows users to specify exactly where they want pages to begin and end and works well when there are multiple tables per sheet or contain objects like charts inside.

The impact 

The launch received glowing reviews amongst enterprise users and online. It lessened internal resistance to Google Workspace adoption, turbocharged sales efforts, and directly led large new enterprise clients such as Verizon and Whirlpool to transition from Microsoft Office to Google Workspace.

4x increase

in Sheets print usage

1+ million

daily users worldwide

Fixed 70%

of the then top enterprise user-problems collected by sales


This is a unique website which will require a more modern browser to work!

Please upgrade today!