// Get the report ID
List <Report> reportList = [SELECT Id,DeveloperName FROM Report where
DeveloperName = 'abc_Report'];
String reportId = (String)reportList.get(0).get('Id');
// Run a report
Reports.ReportResults results = Reports.ReportManager.runReport(reportId);
// Get the report extended metadata
Reports.ReportExtendedMetadata rmd = results.getReportExtendedMetadata();
// Get detail columns from extended metadata
Map<String,Reports.DetailColumn> colMap = rmd.getDetailColumnInfo();
for(String key : colMap.KeySet()){
System.debug('Key=' + Key + ' label=' + colMap.get(key).getLabel());
}
For more information Refer ReportExtendedMetadata Class