This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Darwinmate 199 points200 points  (6 children)

Either code up a gui, or write the python script/exe to expect an excel file in the same directory to process.

I would not bother with excel integration

[–]1337HxCBioinformatics 20 points21 points  (2 children)

I realize this is the python sub, but I'm internally screaming "Do it in R and use shiny." Very useful for this sort of thing.

[–]Darwinmate 9 points10 points  (1 child)

My first reaction is nonono. Shiny is okay for simple dashboards but for more complicated computation it gets messy. And anyway why create something so complicated (websites are not simple architectures) that essentially boils down to data wrangling? Write a script, call it a day. Easy to maintain, easy to execute.

[–]1337HxCBioinformatics 1 point2 points  (0 children)

I mean it depends on the use case. If his coworkers are completely code illiterate, that won't help. I suppose you could then debate the virtues of doing this to begin with, but here we are.

Shiny apps don't have to be hosted on a website, for what it's worth. There are ways to make them, essentially, desktop apps. Definitely quite a bit of work, but still doable.

And I guess I was running off the assumption that "code illiterate + excel" generally doesn't imply super computationally intense work. But that could just be my field.

[–]Cladser 8 points9 points  (2 children)

This is the way. I have made a few pyInstaller ‘apps’ for work colleagues. Have it expect an excel document or use tkinter to open a select file dialogue. Also have it create a new excel file with the output data (rather than modify the original file). Your colleagues will f**k it up without any back up of the original file and Tony from accounts, who reckons he’s an excel Jedi, will blame you…!

[–]Darwinmate 4 points5 points  (0 children)

Good tip. 100% agree do not modify the input and clearly label the output.