cathei / BakingSheet

Easy datasheet management for C# and Unity. Supports Excel, Google Sheet, JSON and CSV format.
MIT License
333 stars 31 forks source link

Suggestions for clarifying setup instructions #31

Closed mgmhunt closed 1 year ago

mgmhunt commented 1 year ago

Hi thanks for the asset, got it working after a (lot) of confusion. Main issue for me was the terminology... I was connecting to Google Sheets so 'Sheets' was used everywhere... it was not working for a long time until I finally spotted this:

"You can see there are two classes, ItemSheet and ItemSheet.Row. Each represents a page of sheet and a single row. ItemSheet is surrounding Row class (It is not forced but recommended convention). Important part is they will inherit from Sheet and SheetRow."

So in Google Sheets, the document is considered a Sheet, and then you can add Sheets to the Sheet.... !

The Page vs Sheet issue got me for a long time and it wasn't too clear even looking at the code. Highlighting this comment would also help.

// property name matches with corresponding sheet name
// for .xlsx or google sheet, **it is name of the sheet tab in the workbook**
// for .csv or .json, it is name of the file
public ItemSheet Items { get; private set; }

Another issue that got me was the sample Items... so when I referenced the container.Items it looked a lot like a List item .... not a SheetPage.Rows. Finally figured it was container.SheetPage.Row.

So maybe changing the example from Items to anything else like Spells or Animals etc would make it clearer as to the abstract class language and the model language.

cathei commented 1 year ago

I've update the comment and descriptions. Thank you for the feedback!