Starsheet does not impose strict structure requirements for your spreadsheet. The only requirement is that Starsheet assumes your data has a single heading row which will be used for the JSON keys.

Basic Structure

By default, each worksheet from your spreadsheet will be output as an array of JSON objects, with each object representing a row in that spreadsheet. For example:

{
  "worksheet_name": [
	  {
		  "your_column_name": "Foo"
	  },
	  {
		  "your_column_name": "Bar"
	  }
  ],
  "another_worksheet": [
	...
  ]
}

Google Sheet Features

Supported Features

The following Google Sheet features are known to work with Starsheet. Most will have no impact on the output data, but editor-facing features like Data Validation and Conditional Formatting can be used to create a robust editing experience that minimises bugs caused by data issues.

FeatureComment
FormulasThe JSON output will contain the value outputted by the formula as displayed in Google Sheets
TablesNo impact on JSON output but useful to create a robust editing experience
Drop DownsNo impact on JSON output but useful to create a robust editing experience
TickboxesOutput as TRUE or FALSE in JSON output
Data ValidationNo impact on JSON output but useful to enforce rules to ensure the generated JSON is compatible with your application(s)
Conditional FormattingNo impact on JSON output but useful to create a robust editing experience
Protected Sheets/RangesNo impact on JSON output but allows you to put access controls in place to limit who can edit certain fields

Unsupported Features

FeatureComment
Text FormattingText formatting such as bold, italic, font colours and background colours will be ignored
Hidden Rows/ColumnsData from hidden ranges will be included in the output. See instructions on how to hide data in Starsheet
FiltersFilters will be ignored. Data hidden by filters will still appear in the output

Naming Conventions

Starsheet does not impose any naming convention for worksheets and fields. The JSON output will mirror the exact names used in the Google Sheet to ensure interoperability with all programming languages and frameworks.

Whilst you are free to include spaces and a mix of capitalisation in your worksheet and field names, we strongly recommend adopting a consistent naming convention such as snake_case, camelCase or PascalCase.

In the future, we may introduce a project-level setting to automatically convert spreadsheets to your preferred naming convention. Please contact us if this feature is important to you and you wish to be an early adopter.

Special/Reserved Characters

The following symbols are used by Starsheet to trigger specific behaviours so should not be used in field and/or worksheet names unless you are looking to trigger the functionality described.

SymbolDescriptionScopeHow it’s used
#HashWorksheet and Column NamesUsed to hide a worksheet or row.
$Dollar SignWorksheet Names
.PeriodColumn NamesUsed in column titles to define data to be output as a JSON Object.
[]Square BracketsColumn NamesUsed in column titles to defined fields to be combined into an array,
!Exclamation MarkColumn NamesUsed to trigger specific functionality such as hiding rows or causing a sheet to be output as key-value pairs.
:ColonColumn NamesReserved for future use
?Question MarkColumn NamesReserved for future use
<>Triangle BracketsColumn NamesReserved for future use

Advanced Formatting