Google-sheets – way I can set only a certain sheet visible in Google Spreadsheets

google sheets

So lets say I have a Spreadsheet and I press the share button to Public (no edit except me). I have 2 sheets but only want other users to see 1 sheet.

Without having to create another document is there a way I can set it so the public can only see 1 of the sheets in this file?

Best Answer

No, this is currently not possible. You can protect sheets (and ranges) so that other users cannot edit them, but not entirely hide them. You can create another Spreadsheet and use the ImportRange-function to import the data to the new Spreadsheet. If you do this, though, be aware that the users viewing the second document can see the unique key of your document, so if you're not careful they can import the data from your other sheet as well.
If you do it this way, put the sheet you want to share first in your Spreadsheet and name your other sheet something other users couldn't guess. If you don't give the importRange-function a sheet it automatically uses the first sheet, then if any other user wants to get data from the other sheet they have to know it's name. It is possible to find the data with a brute-force attack, so if your data is really sensitive I don't recommend this.

A second, much more secure, way is to use a script. You still have to create two Spreadsheets, one with both sheets and one empty Spreadsheet which you will never edit yourself.
Build a script that, when you edit a cell in the original sheet, pushes that value to the corresponding cell in the second sheet.
Tell me if you need help with this.