HTML vs CSV

Reports exist in two forms. They display in web browser when viewed in the Control Panel and as CSV files when exported. If you wish to treat your data differently in these two contexts you can use the isExport variable.

# Twig Template Example

In Twig Template Reports the isExport variable is available in your results template.




 


{% do craft.sproutReports.addHeaderRow(['Row']) %}  {% do craft.sproutReports.addRow([     isExport ? 'Not Link' : '<a href="">Link</a>' ]) %} 

# Custom Data Source Example

When building a custom data source, the context is defined as a property on the DataSource class. The 'isExport' property is set to false by default and gets set to true when running the export action.










 







class MyCustomDataSource extends DataSource {     ...      public function getResults(Report $report, array $settings = []): array     {         // Results logic          Craft::$app->getView()->renderTemplate('path/to/resultsTemplate', [             'isExport' => $this->isExport,             'settings' => $settings         ]);     }      ... }