@@ -679,6 +679,21 @@ def _generate_dataframe_content(
679679 if is_url (dataframe .file_path )
680680 else Path (".." ) / dataframe .file_path
681681 )
682+ sheet_names = None
683+ # If the file is an Excel file, get the sheet names
684+ if file_extension in [
685+ r .DataFrameFormat .XLS .value_with_dot ,
686+ r .DataFrameFormat .XLSX .value_with_dot ,
687+ ]:
688+ sheet_names = table_utils .get_sheet_names (file_path )
689+ if len (sheet_names ) > 1 :
690+ # If there are multiple sheets, use the first one
691+ self .report .logger .info (
692+ f"Multiple sheets found in the Excel file: { file_path } . "
693+ f"Sheets: { sheet_names } "
694+ )
695+ else :
696+ sheet_names = None
682697
683698 # Load the DataFrame using the correct function
684699 read_function = read_function_mapping [file_extension ]
@@ -690,6 +705,30 @@ def _generate_dataframe_content(
690705 dataframe_content .extend (
691706 self ._show_dataframe (dataframe , is_report_static , static_dir = static_dir )
692707 )
708+ # Add further sheets
709+ if sheet_names :
710+ for sheet_name in sheet_names [1 :]:
711+ dataframe_content .append (f"#### { sheet_name } " )
712+ dataframe_content .append (
713+ textwrap .dedent (
714+ f"""\
715+ ```{{python}}
716+ #| label: '{ dataframe .title } { dataframe .id } { sheet_name } '
717+ #| fig-cap: ""
718+ """
719+ )
720+ )
721+ dataframe_content .append (
722+ f"df = pd.{ read_function .__name__ } ('{ file_path .as_posix ()} ', "
723+ f"sheet_name='{ sheet_name } ')\n "
724+ )
725+ # Display the dataframe
726+ # ! Probably this still does not work for static reports...
727+ dataframe_content .extend (
728+ self ._show_dataframe (
729+ dataframe , is_report_static , static_dir = static_dir
730+ )
731+ )
693732
694733 except Exception as e :
695734 self .report .logger .error (
0 commit comments