It's not a node, but there are some tools we could cobble together to make a flow that would effectively work as you ask.
In Gnumeric, there exists a program called ssconvert . It is a spreadsheet commandline conversion tool... See where I am going? The goal here is, "How do we convert a spreadsheet to something with messages?"
I have my diabetic spreadsheet (was diagnosed 1 month ago) in the exec node, so change it to whatever chart you're using.
Inject->Exec->CSV->debug
And it outputs 1 row as an object per message sequentially to end of spreadsheet.
[{"id":"450c4ccd.41a16c","type":"exec","z":"20240cab.96b054","command":"ssconvert \"/home/josh/Documents/diabetes spreadsheet.ods\" fd://1 -T Gnumeric_stf:stf_csv","addpay":true,"append":"","useSpawn":"","name":"Convert XLSX to CSV","x":263,"y":157,"wires":[["a411edbc.cba66"],[],[]]},{"id":"a411edbc.cba66","type":"csv","z":"20240cab.96b054","name":"","sep":",","hdrin":"","hdrout":"","multi":"one","ret":"\\n","temp":"","x":449,"y":144,"wires":[["1b163ba3.536dcc"]]},{"id":"1b163ba3.536dcc","type":"debug","z":"20240cab.96b054","name":"","active":true,"console":"false","complete":"false","x":600,"y":144,"wires":[]},{"id":"bd88ccef.9772f","type":"inject","z":"20240cab.96b054","name":"","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":80,"y":154,"wires":[["450c4ccd.41a16c"]]}]
It's not quite what you were asking for (you wanted I assume a node that you send in data on msg.payload or file location msg.filename ... But this can work. Now, load the data in a database and you can have a live DB hosting the content. And periodically, you can read the DB and regenerate the XLSX file. But I'm sure you can do that :-)
Sincerely,
Josh Conway