What I’m trying to do:
I create .xlsx files using openpyxl, they are stored as .xlsx files, they download and open in Excel with no issue, we use these all day. These Workbooks have multiple Worksheets, I’d like to later refer to/open these and ‘read’ specific cell values.
What I’ve tried and what’s not working:
I tried xlrd, no dice… it does not handle .xlsx format. I’m calling the server function below and I’m getting a messy error, I think I’m close but not quite packaging or decoding the stored Workbook properly.
Code Sample:
@anvil.server.callable
def read_xlsx(rfa_id):
jobs = app_tables.jobs.search(rfa_id = rfa_id)
if len(jobs) > 1:
for job in jobs:
jobs = sorted(jobs,key = lambda i: i['post_datetime'], reverse=True)
job = jobs[0]
else:
job = jobs[0]
wb = job['download'].get_bytes()
workbook = load_workbook(wb)
print(f"Worksheet names: {workbook.sheetnames}")
sheet = workbook.active
print(sheet)
print(f"The title of the Worksheet is: {sheet.title}")
I’m getting this error:
InvalidFileException: openpyxl does not support b’.xmlpk\x05\x06\x00\x00\x00\x00\x10\x00\x10\x00(\x04\x00\x00\xf2s\x00\x00\x00\x00’ file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm at /usr/local/lib/python3.7/site-packages/openpyxl/reader/excel.py, line 94 called from /usr/local/lib/python3.7/site-packages/openpyxl/reader/excel.py, line 124 called from /usr/local/lib/python3.7/site-packages/openpyxl/reader/excel.py, line 316 called from [PDFServerModule, line 471](javascript:void(0)) called from [Dev_Starter, line 45](javascript:void(0))
Clone link:
Unfortunately I don’t have/cannot see to create a separate app so as not to post sensitive data