Bug description

When you have a table chart or a handlebar chart (This one simulating the table UI) inside a dashboard, if you use the Download as Image option of that chart, the downloaded image only considers the visual section shown in the dashboard and not the full chart.

  1. Create a regular table chart.
  2. Add to a dashboard, so that it doesnโ€™t show up entirely (it shows the scroll bar).
  3. Download the table chart from the dashboard as an image.

Image

Expected results

The downloaded image considers all the information that the table chart has

Actual results

The downloaded image only considers the information shown in the dashboard and not the full table

Screenshots/recordings

No response

Superset version

master / latest-dev

Python version

3.11

Node version

18 or greater

Browser

Chrome

Additional context

No response

Checklist

  • [x] I have searched Superset docs and Slack and didn't find a solution to my problem.
  • [x] I have searched the GitHub issue tracker and didn't find a similar bug report.
  • [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Comment From: dosubot[bot]

This is a known limitation: when you use "Download as Image" on a table or handlebar chart in a dashboard, only the visible portion is exported. This happens because Superset uses the dom-to-image-more library, which captures only what's currently rendered in the DOMโ€”so if the chart/table is scrollable, only the visible section is included in the image export. There is no code in the current implementation to expand the table or render all rows before capturing the image, and no workarounds or enhancements for this have been documented or proposed in recent issues or pull requests [source].

This limitation is specific to table and handlebar charts. Other chart types (like bar, line, or pie charts) that use ECharts can export the full chart regardless of what is visible, because ECharts provides its own export API that isn't limited by the DOM viewport.

Currently, the only alternatives are to export the data as CSV or use a browser extension to capture the full scrollable area, but these are not integrated solutions. If you need the full table as an image, you would need a feature enhancement that temporarily expands the table before capture or stitches together multiple images.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report ๐Ÿ› | Other  Join Discord Share on X

Comment From: geido


๐ŸŽ‰ Preset Bounty Available: $150 USD ๐ŸŽ‰

To claim this bounty, please carefully follow the steps below.


๐Ÿ“‹ Steps to Participate

  1. Review Guidelines:
    Read through the Preset Bounty Program Contribution Guide for complete details on bounty requirements.

  2. Show Your Interest:
    Complete the Preset Bounty Program Survey and comment this issue to express your interest.

  3. Join the Slack Channel:
    After completing the survey, youโ€™ll receive an invitation to the dedicated Apache Superset Slack channel.

  4. Get Assigned:
    To officially start, ensure a Bounty Program Manager has assigned you to this issue.

  5. Submit Your Solution:
    When ready, submit your solution with the Fixes #{issue_number} notation in your Pull Request description.

  6. Claim Your Bounty:
    Sign up at GitPay.me and submit your solution via: https://gitpay.me/#/task/1213


๐Ÿ’ก Additional Notes

  • Only developers assigned by a Bounty Program Manager should start working on this issue to win the bounty.
  • Be sure to follow the guide closely to avoid any delays in payment. Please, allow a few days after your PR has been merged for the bounty to be released.

Good luck, and happy coding! ๐ŸŽ‰

Comment From: Sameerali0

@msyavuz I would love to work on this.