This plugin makes use of the NPOI library which allows you to manipulate xls(x) files without Excel installed and it is faster. It should work both on Windows and macos but macos isn’t tested.
If you need to write Excel files / modify opened spreadsheet, please use flow control components (e.g. Wait Until) to make sure they are sequentially ordered otherwise the result is unreliable.
This plugin is still in the alpha stage, and may contain unknown bugs.
Backup files especially when you are writing xls(x) files. Don’t hesitate to contact me or leave a reply here if you run into something. Most of writing components aren’t thoroughly tested. Advice is also welcome.
It would have a few more features if Pancake is installed but it will work without it.
Thanks for the plugin! This is the best Excel plugin I found in my trials. I am currently using this setup to read Excel files, in which I use Human’s item selector to reference the sheet name.
I use (very light) Excel tables do drive my script to generate geometry and would like to request an update toggle/ node input (to refresh the spreadsheet coming in to Grasshopper). I prefer this to be at the spreadsheet level, to prevent the item selector from updating as well (and defaulting back to another sheet).
I’m afraid a spreadsheet must be reloaded entirely, due to limitations of the underlying mechanism.
I would propose a workaround of using two Open Spreadsheet components, one for sheet name and one for actual read, and there could be two reloading toggles, one “bigger” one would also trigger the other one.
I’m trying to apply data from a sheet based on attributes. For instance, I have curves that have the attribute ‘Tram’ which I would like use to set the width of the street, similarly, I could have a sheet called ‘Alley’ which i would use to generate tiny streets with.
I have been trying to read all sheets within the file by grafting the spreadsheet input for the sheet identifier in the Simple read XLS component, but the component does not maintain data order whatsoever when I do this. Is that something you could support in the future? Meaning, you could create a tree branch for each spreadhseet and have a component with a spreadsheet index which then returns the specific spreadsheet branch.