Spaces:
Sleeping
Sleeping
import io | |
from numbers_parser import Document | |
from openpyxl import Workbook | |
import gradio as gr | |
import pandas as pd | |
def numbers_to_xlsx(numbers_file): | |
""" | |
Reads a Numbers file and converts it to an xlsx file for download. | |
Args: | |
numbers_file: The uploaded Numbers file object. | |
Returns: | |
bytes: The contents of the converted xlsx file. | |
""" | |
try: | |
# Read the Numbers file | |
doc = Document(numbers_file.name) | |
sheets = doc.sheets | |
tables = sheets[0].tables | |
data = tables[0].rows(values_only=True) | |
df = pd.DataFrame(data[1:], columns=data[0]) | |
xls_path = './new.xlsx' | |
df.to_excel(xls_path, index=False) | |
return xls_path | |
except Exception as e: | |
return f"Error converting file: {e}" | |
# Define the Gradio interface | |
interface = gr.Interface( | |
fn=numbers_to_xlsx, | |
inputs="file", | |
outputs=gr.File(label="XLSX file"), | |
title="Numbers to XLSX Converter", | |
description="Convert your Numbers files to Excel format easily and download the result.", | |
) | |
# Launch the Gradio app | |
interface.launch(share=True) | |