Download excel file

How about something like this:

import io
import pandas as pd


@anvil.server.callable
def export_to_excel(data, columns):
    df = pd.DataFrame(data, columns=columns)
    content = io.BytesIO()
    df.to_excel(content, index=False)
    content.seek(0, 0)
    return BlobMedia(content=content.read(), content_type="application/vnd.ms-excel")

and on the client side, you might have this in a click hander for a download button:

def download_button_click(self, **event_args):
    result = anvil.server.call("export_to_excel", <pass your data and columns here>)
    anvil.media.download(result)
9 Likes