Download SCORM data from LMS into Excel

Oct 27, 2013

My team has created a number of wonderful courses using Storyline. They are published as SCORM 1.2 and uploaded to TalentLMS. Now that several learners have completed the courses, we would like to download the quiz data into Excel for analysis. Is there an easy way to do this? We have a bid from a developer, but it is expensive and we don't want to do this every time we have a new course. Any thoughts or suggestions would be greatly appreciated.

5 Replies
Dennis Hall

Hi Mark:

This is clearly an LMS vendor question, however, if you are able to modify your administrative reporting screen for the TalentLMS, the best solution would be to have a developer create a Download to Excel button that calls a processor function file which collects the reporting data and  packages it into the xls file.

Regarding the cost, I'm not sure why it would cost so much for a developer to develop this functionality.

I do not know if TalentLMS is a PHP LMS or not, but I do know that if you are using the WP plugin, you can modify your WP admin screen and modify the plugin, you can use the following code in the WP Admin screen:

Here is an example of the processor code for a PHP based CMS system I developed:

filename: exceldump.php



/* session_start();


if (!isset($_SESSION['user']))
{
header("Location: login.php");
}
header("Content-Type: text/html; charset=utf-8"); */
include 'dbc.php';
mysql_query("SET CHARACTER SET charset=utf-8");
mysql_query("SET NAMES charset=utf-8");


$result = mysql_query('select * from nl');
$count = mysql_num_fields($result);


for ($i = 0; $i
    $header .= mysql_field_name($result, $i)."\t";
}


while($row = mysql_fetch_row($result)){
  $line = '';
  foreach($row as $value){
    if(!isset($value) || $value == ""){
      $value = "\t";
    }else{
# important to escape any quotes to preserve them in the data.
      $value = str_replace('"', '""', $value);
# needed to encapsulate data in quotes because some data might be multi line.
# the good news is that numbers remain numbers in Excel even though quoted.
      $value = '"' . $value . '"' . "\t";
    }
    $line .= $value;
  }
  $data .= trim($line)."\n";
}
# Return embedded information in the data that has "\r"
# and this looks like a "box character" in Excel
  $data = str_replace("\r", "", $data);



# Let user know that the search came up empty.
# Otherwise only the column name headers will be output to Excel.
if ($data == "") {
  $data = "\nno matching records found\n";
}


# This line will stream the file to the user rather than spray it across the screen
header("Content-type: application/octet-stream");


# replace excelfile.xls with whatever you want the filename to default to
header("Content-Disposition: attachment; filename=report.xls");
header("Pragma: no-cache");
header("Expires: 0");


echo $header."\n".$data;
?>


And here is the code for the Download to Excel button that would be located on the report page:




?>


Please mark this thread as Solve is it helps you get this function working properly.

Best Regards,

Dennis Hall

Mark Blessington

Dear Dennis,

Thank you for the thorough and careful reply! The bid was for $2,500. Does this seem high? At any rate, with the code you sent, I am eager to try it myself. I must confess: the code looks like Greek to me, but your # descriptions help tremendously. TalentLMS has API and php functionality. I will look into how to use these tools to implement the excel download.

All the best,

Mark

This discussion is closed. You can start a new discussion or contact Articulate Support.