Skip to content

Commit dbd468d

Browse files
committed
✨🚧 first draft to use multiple sheets from excel file in quarto reports
1 parent c6cb19f commit dbd468d

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/vuegen/quarto_reportview.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)