Spaces:
Runtime error
Runtime error
| import os | |
| import gradio as gr | |
| import pandas as pd | |
| # from groq import Groq | |
| from dotenv import load_dotenv | |
| from openpyxl import load_workbook | |
| from openpyxl.styles import Alignment | |
| os.environ['REQUESTS_CA_BUNDLE'] = '/usr/local/share/zscaler.crt' | |
| load_dotenv() | |
| def read_excel_and_process(fi): | |
| excel_file = pd.ExcelFile(fi) | |
| new_data = {} | |
| row_names = ['8:30-9:50', '10-11:20', '11:30-12:50', '1-2:20', '2:30-3:50', '4-5:20', '6-7:20', '7:30-8:50'] | |
| col_names = ['Time', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday/Sunday'] | |
| column_widths = [15, 40, 40, 40, 40, 40, 40] | |
| for t in row_names: | |
| new_data[t] = {} | |
| for d in col_names: | |
| new_data[t][d] = [] | |
| for sheet_name in excel_file.sheet_names: | |
| # print(f"Processing sheet: {sheet_name}") | |
| df = excel_file.parse(sheet_name) | |
| # row_index = df.index | |
| # col_names = df.columns | |
| for i in range(0, len(row_names)): | |
| for j in range(1, len(col_names)): | |
| cell_value = df.iat[i, j] | |
| if pd.isna(cell_value): | |
| continue | |
| if str(cell_value).find('Common') > -1: | |
| continue | |
| row_name = row_names[i] | |
| col_name = col_names[j] | |
| new_data[row_name][col_name].append("{}, {}".format(str(cell_value).strip(), str(sheet_name).strip())) | |
| print(f"Sheet: {sheet_name}, Row: {row_name}, Column: {col_name}, Value: {cell_value}") | |
| for t, v in new_data.items(): | |
| for d, vv in v.items(): | |
| new_data[t][d].sort() | |
| new_data[t][d] = "\n".join(new_data[t][d]) | |
| data_2 = [] | |
| for t, v in new_data.items(): | |
| v['Time'] = t | |
| data_2.append(v) | |
| df = pd.DataFrame.from_dict(data_2) | |
| # df.to_excel("visualization.xlsx", index=False) | |
| with pd.ExcelWriter('visualization.xlsx', engine='openpyxl') as writer: | |
| df.to_excel(writer, sheet_name='Sheet1', index=False) | |
| workbook = writer.book | |
| worksheet = writer.sheets['Sheet1'] | |
| for i, width in enumerate(column_widths): | |
| column_letter = chr(65 + i) # change index col to(A, B, C,...) | |
| worksheet.column_dimensions[column_letter].width = width | |
| for cell in worksheet[column_letter]: | |
| cell.alignment = Alignment(wrap_text=True) | |
| return "visualization.xlsx" | |
| # def excel_to_csv(fi): | |
| # df = pd.read_excel(fi) | |
| # clm = [] | |
| # for c in df.columns: | |
| # clm.append(c) | |
| # df = df.to_csv(path_or_buf = "here2.csv") | |
| # return gr.Dropdown(choices=clm, value=clm, label="Columns of the file", multiselect=True, allow_custom_value=True), "here2.csv" | |
| with gr.Blocks() as demo: | |
| # with gr.Tab("Course Schedule Visualization"): | |
| gr.Markdown("## Visualize your course schedule.") | |
| ex_fi = gr.File(file_count='single') | |
| result_fi = gr.File(file_count='single') | |
| # upload to process | |
| ex_fi.upload(read_excel_and_process, inputs=ex_fi, outputs=result_fi) | |
| # click to process | |
| # btn_submit = gr.Button("Submit") | |
| # btn_submit.click(text_to_neo4j, inputs=[remarks, columns], outputs=[result_fi,result_ta])/ | |
| demo.launch() |