cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Automated progress report of students in modules

stelpstra
Community Champion
61 107 24.3K

Attached Excel workbook is able to download data from Canvas (using Get API calls) to create a progress report of all students in a course with modules to which requirements are added (see How do I add requirements to a module?).

Canvas Module Progress Sheet

Canvas Module Progress Comments

Canvas Module Progress Stats

(no data means not yet downloaded while download is in progress)

Compatibility

  • MS Office 2010 on MS Windows (higher versions work most likely, but are not tested)
  • MS Office 2011 on Mac OS X (version 2016 for Mac barely supports VBA and is therefore not supported)

Enable editing and content

In case Excel displays the following warnings, enable editing and content for the Workbook to work properly:

Vba Enable Editing

Vba Enable Macro Content

Settings

First fill in the settings:

Run progress report

To run a progress report:

  • find the course ID of the course from which the report needs to be generated in the address bar
    Canvas Module Progress Course ID
  • fill in the Course ID in the worksheet at cell B2 (e.g. 210)
    Canvas Module Progress Enter Course ID
  • click the button Download data from Canvas to create the progress report

Depending on the amount of students and module items this may take a some time (about half a second per student).

In the top-left corner the download progress is displayed in percentages.

To cancel the download progress click the button Download data from Canvas again (only while download progress is less than 100%, otherwise downloading would start again).

Versions history:

  • 1.11 (July 29, 2020)
    • Updated the processing of API pagination (Instructure changed the method regarding the enrolments API) to accommodate for both the old and the new method.
    • Changed some Excel formulas to prevent #DIV/0! from being displayed

Performance

In case you experience extremely slow performance (a minute per row or so) to the point that Excel is freezing, then make sure the Windows Defender Antimalware Client version is at least 4.18.2102.4. You can check the version on your device following this guide How to Find the Microsoft Defender Version Installed in Windows 10.

Remarks

  • Disclaimer: use this workbook at your own risk (I cannot be held responsible for any undesired consequences). This Excel workbook only reads from Canvas, never writes to it and should not have any negative effect on Canvas in terms of integrity or performance.
  • First try it on your test environment https://yourinstitution.test.instructure.com (slow performance is expected and may cause time-out errors) before using it on production
  • Check samples from reports with actual data in Canvas or in case your student(s) get accounted for their activities in modules as Canvas is the most reliable source
  • Suggestion: save the workbook as a template (xltm file) after entering the settings so you can always start with a fresh and clean workbook so you will be prompted to save it. Keep in mind that if you don't save the file in a macro-enabled workbook format (xlsm), running the report again will not work any more as it requires the macro functionality to run.
  • I created this workbook largely in my own spare time (for fun, to learn, to share and because I can), so huge amounts of support can't be expected
  • Leave your comments in case you are using it, if it makes your work easier or more fun

Download

Download the latest version of this file from this Google Drive folder.

Do not open in Google Docs nor in MS Office online, because that will not work, just first save the file and then open it in the Microsoft Excel application.

Additional tools

107 Comments
stelpstra
Community Champion

@twassmer, nope, not the purpose of this tool.

@matthewheinlein, thanks, same to you. This blog has been updated several times. If you read it, you'll find your answers 😉

Edit: I see now that you meant not the tool described on this page but another one of my tools. There are many problems with my pages from the start they Instructure migrated the community to this new platform. I am in contact with community managers, but not much is improving. Therefore the other tools you can also download from the google drive linked on this blog. The versions you find there are the latest versions of my tools.

okiepoke
Community Member

Any ideas for how someone with a Mac running Version 16.44 (365 subscription) might be able to use this? I was SO excited when I came across this thread; however, my Mac won't even let me open the Settings. 

You'd think Canvas would have better analytics by now, especially with a thread like this one that provides a legit solution that a lot of people are looking for. 

Thanks in advance for any ideas you might be able to provide. 

ashleyrshipp
Community Member

You are awesome!!

I was in the process of writing a Python program to do the same thing and export to Excel... don't know why I didn't think of using VBA directly!?!

You just saved me hours of coding!

nfenger
Community Member

For those experiencing slow performance of Office 365. I was able to resolve the issue by temporarily disabling Windows Defender real time protection and opening an PowerShell window as administrator and running this command mentioned here. Because I don't really know the implications of disabling AMSI (Windows Antimalware Scan Interface) I re-enable it when I'm done  by changing the $true in the command to $false after I was done and re-enabled Defender real time protection.

To disable AMSI run this in PowerShell

"[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsilnitFailed','NonPublic,Static').SetValue($null,$true)"

To re-enable AMSI run this in PowerShell

"[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsilnitFailed','NonPublic,Static').SetValue($null,$false)"

 If you get an error "This script contains malicious content and has been blocked by your antivirus software." you forgot to disable Windows Defender real time protection. Don't forget to re-enable it when you are done.

You can find lots of resources on running PowerShell as administrator on the web, just search it.

If anyone knows the implications of leaving AMSI disabled please let us know.

peter_tan
Community Member

Hi, 

Thank you for this great work.

It works from a root account API generated access token.

I'm trying to figure out if this excel sheet can pull from a sub account API generated access token? It doesn't seem to work so far for non-root account API Access Token.   

 Any help there? Thanks 

stelpstra
Community Champion

@nfenger Thanks for sharing your findings, although I would never recommend disabling Windows Defender.

Instead, find the Microsoft Defender Version Installed in Windows 10 and make sure it is updated to at least Antimalware Client Version: 4.18.2102.4

Recently I worked with Microsoft Support to find this to be the root cause if the problem. Older versions of Antimalware Client will most likely cause these problems.

stelpstra
Community Champion

@peter_tan, the token should be created in your personal account, not on a sub-account level. Please create a token as described here https://community.canvaslms.com/t5/Admin-Guide/How-do-I-manage-API-access-tokens-as-an-admin/ta-p/89
With this token you can access courses in the account(s) you are admin in and courses you have a non-user course role (having the correct permissions).