I need to enable the User to download an Excel file that my code saved in the app folder as nom_excel + ‘.xlsx’. (nom_excel being a string).
Before publishing the app, it worked on my machine with the following code :
database_to_dl = File.from_path((Path(__file__).parent / nom_excel).with_suffix('.xlsx'))
return DownloadResult(database_to_dl, 'Synthese ' + params.input_1 + '.xlsx')
where the file at (Path(file).parent / nom_excel).with_suffix(‘.xlsx’) was created just before by a call to pd.ExcelWriter.
I suspect that once published, saving the file and then creating a File object from it doesn’t work anymore ?
Hi @SolalSPC ,
Welcome to the community! And thank you for posting your question here. You are correct in saying that saving a file inside a folder does not always work in production. Depending on whether you want to use the file directly in a single calculation, or store for a subsequent calculation, the recommended way would be to either convert the file directly from memory to the format that is allowed to be passed through to the DownloadResult
, or you could pass the file to storage, more info here:
Let me know if this helps.
1 Like
I think this could also be a valuable resource to read @SolalSPC: Managing files | VIKTOR Documentation
2 Likes
@matthijs @mslootweg
Thanks guys, after reading your recommendations, i found a way to make it work by writing my Excel file to a BytesIO object that i then fed to render_spreadsheet without filling any cells.
1 Like