PSA: Google Sheets’ ‘Hide Column’ Is Not a Secure Way to Hide Data

Suppose you are a high school administrator and you have a Google Sheet you want to share with the students, except there are certain columns that you don’t want them to see:

A Google Sheet with one column that should be hidden

You don’t want to fully delete those columns either, though — they might be useful later, or the spreadsheet was automatically generated from a Google Form and you don’t want to mess up that correspondence, or something. “Aha,” you think, “I’ll just use the ‘Hide column’ feature”:

The Sheet with that column hidden

So you do that and give the students view-only access to the Sheet, and it appears to work. But it doesn’t work! Most immediately, the default option even with view-only sharing is to allow viewers to download the Sheet, and if a student does that they can just open it in Excel and unhide the column. There is an option to disable the downloading feature, but the data is still there, it just takes a bit more work to dig out:

A console printout that includes hidden data

I think the best way of thinking about ‘Hide column’ is as a cosmetic feature: just as you wouldn’t try to securely hide data by making the text white on a white background (would you?), you shouldn’t try to do it this way. Same goes for hiding whole sheet tabs within a file, which can also be trivially undone after downloading. It’s a hassle, but if you want to really be sure that private data isn’t being shared, only share files that do not contain private data in any form.

Updated: