# excel 2 Moodle
{width=35%}
*excel2moodle* helps to create Moodle questions in less time.
The idea is to write the questions data into a spreadsheet file, from which the *excel2moodle* generates moodle compliant xml Files.
All questions or a selection of questions can then be imported into moodle.
## Concept
At the heart the *excel2moodle* is a simple key-value-pair "syntax", where the key is set once in the first spreadsheet column.
Each key can be provided with a value for each question in its column
To enhance reusability, key values which are correct for more than one question can be set per category or for all questions.
The concept is, to store the different questions into categories of similar types and difficulties of questions, for each of which, a separated sheet in the Spreadsheet document should be created.
A `settings` sheet contains global settings to be used for all questions and categories.
Another sheet stores metadata for the different categories of questions.
And each category lives inside a separate sheet inside the spreadsheet document.
## Getting Started
### Installation
To get started with excel2moodle first have a look at the [installation](https://jbosse3.gitlab.io/excel2moodle/howto.html#excel2moodle-unter-windows-installieren)
If you already have python and uv installed, it is as easy as running `uv tool install excel2moodle`.
### [ Documentation ](https://jbosse3.gitlab.io/excel2moodle/index.html)
Once excel2moodle is installed you can checkout the [example question sheet](https://gitlab.com/jbosse3/excel2moodle/-/tree/master/example?ref_type=heads)
in the repository. You need to download all Files in the `example` directory and save them together.
Most steps are already documented as [ tutorials ](https://jbosse3.gitlab.io/excel2moodle/howto.html)
you can follow along.
And please have a look into the [**user Reference**](https://jbosse3.gitlab.io/excel2moodle/userReference.html)
of the documentation.
That part explains in more detail each part of defining a question.
## Features
- Fully parametrized numeric questions:
* Formulas for the calculated results can be coded into extensive python modules, which can be loaded.
- Question Preview:
+ This helps you when selecting the correct questions for the export.
- Equation Verification:
+ this tool helps you to validate the correct equation for the parametrized Questions.
- Variable Generation:
+ You can generate variables for the parametric Question to easily create hundreds of different variants of the same question.
- Export Options:
+ you can export the questions preserving the categories in moodle
### Question Types
- Generate multiple Choice Questions:
* The answers can be pictures or normal text
- Generate Numeric Questions
- Generate parametrized numeric Questions:
* With the parametrization *excel2moodle* calculats the numeric answer from a given formula based on a set of variables.
- Generate parametrized cloze Questions
{width=80%}
## Licensing and authorship
excel2moodle is lincensed under the latest [GNU GPL license](https://gitlab.com/jbosse3/excel2moodle/-/blob/master/LICENSE)
Initial development was made by Richard Lorenz, and later taken over by Jakob Bosse
## Supporting
A special thanks goes to the [Civil Engineering Departement of the Fachhochschule Potsdam](https://www.fh-potsdam.de/en/study-further-education/departments/civil-engineering-department)
where i was employed as a student associate to work on this project.
If You want to support my work as well, you can by me a [coffee](https://ko-fi.com/jbosse3)
# Changelogs
## 0.6.2 (2025-08-02)
Adding export options and fixing cloze points bug
### feature (4 changes)
- [Added export options to include all Question Variants and generate report](https://gitlab.com/jbosse3/excel2moodle/-/commit/6433615de23174451748b69669a9dce748dd5b4d)
- [Implemented export dialog generator method](https://gitlab.com/jbosse3/excel2moodle/-/commit/a8eda982309bf9a6dae7ef2b261a59654f2c8910)
- [Answer Feedback strings settable in sheet](https://gitlab.com/jbosse3/excel2moodle/-/commit/ad90da49ac60e429ad3243f54846b08f0caf5bc7)
- [Inverted result and feedback for NFM & Cloze questions](https://gitlab.com/jbosse3/excel2moodle/-/commit/57d77c83a661398b0082f84d25e5447000df9096)
### improvement (1 change)
- [Missing `settings` sheet raises an error](https://gitlab.com/jbosse3/excel2moodle/-/commit/e1cc42c1d31981bf74582b23c24c6ac378e9256d)
### bugfix (1 change)
- [resolve cloze moodle import error due to float points](https://gitlab.com/jbosse3/excel2moodle/-/commit/f13b7b9df39df55d65b6063a9deb1fc1c72f5ebb)
## 0.6.1 (2025-07-12)
Fixing import error caused by dumping pyside meta package
### bugfix (1 change)
- [fixing pyside import error](https://gitlab.com/jbosse3/excel2moodle/-/commit/e5e0fc7695caa1a6864785828ff7311fa9624ad4)
## 0.6.0 (2025-07-12)
Added variable generator and other architechtural improvements
### documentation (1 change)
- [Documenting variable generator usage](https://gitlab.com/jbosse3/excel2moodle/-/commit/3e4d3019b29872b5cfddf5539d5ebe7638bca049)
### feature (5 changes)
- [Opening spreadsheet file works from within excel2moodle](https://gitlab.com/jbosse3/excel2moodle/-/commit/9470f12ea5f098745a3210b281a5144a938ae8b5)
- [Variables are copied to clipboard](https://gitlab.com/jbosse3/excel2moodle/-/commit/87a7e5ec75f899b293e89ad3c1742567e3ec1c29)
- [Removed dependence on pyside6-addons](https://gitlab.com/jbosse3/excel2moodle/-/commit/2b3a7cf48581c14bd9cb570cd61d1d41aa410e11)
- [Var Generator ready](https://gitlab.com/jbosse3/excel2moodle/-/commit/ea97f0639dc35a4c99a64ae3976ccc8a0ac5d109)
- [Merge development of BulletsObj, Parametrization and VarGenerator](https://gitlab.com/jbosse3/excel2moodle/-/commit/40b46f3c143e082f1bb985d6c8c4e68bb6b6a7a8)
### improvement (7 changes)
- [Adapted Param. Parser to use bullet Obj](https://gitlab.com/jbosse3/excel2moodle/-/commit/194cab7cc6aecb2d25d1cb9c1538ed7d607dd9e1)
- [Added bulleList Object](https://gitlab.com/jbosse3/excel2moodle/-/commit/4ea982b8d8dc270675d2cb059c59fa980ce38894)
- [Parametrics in beta stage](https://gitlab.com/jbosse3/excel2moodle/-/commit/7d04d8ef2fc603c1b12b6934c827ce079df5d540)
- [Refactor parse() method, to construct complete xml-Tree](https://gitlab.com/jbosse3/excel2moodle/-/commit/8dc4bea9aa0673d39357115254dd55b02c04114e)
- [Refactored question assembly to only update fields.](https://gitlab.com/jbosse3/excel2moodle/-/commit/d7accb69be3b4a1e65f59eeecfb463f2663fabd4)
- [Adapted NFM Question to parametricResult](https://gitlab.com/jbosse3/excel2moodle/-/commit/fe552cd2b538ca8886415c200e4a2a3ecc1fbb2f) ([merge request](https://gitlab.com/jbosse3/excel2moodle/-/merge_requests/5))
- [Implemented ParametricResult Object](https://gitlab.com/jbosse3/excel2moodle/-/commit/e36d025955f1cab8e0542d66263ab70e3d8980df) ([merge request](https://gitlab.com/jbosse3/excel2moodle/-/merge_requests/5))
## 0.5.2 (2025-06-30)
Extended Documentation and bugfix for import Module
### bugfix (2 changes)
- [Default question variant saved and reused.](https://gitlab.com/jbosse3/excel2moodle/-/commit/097705ba83727463a9b27cd76e99814a7ecf28df)
- [bugfix: Import module working again](https://gitlab.com/jbosse3/excel2moodle/-/commit/5f293970bcdac3858911cdcc102b72714af057bd)
### documentation (1 change)
- [documentation: Added how to build question database](https://gitlab.com/jbosse3/excel2moodle/-/commit/71ceb122aa37e8bf2735b659359ae37d81017599)
### feature (1 change)
- [Implemented MC question string method](https://gitlab.com/jbosse3/excel2moodle/-/commit/c4f2081d0000ee60322fe8eec8468fa3317ce7be)
### improvement (1 change)
- [Implemented ClozePart object](https://gitlab.com/jbosse3/excel2moodle/-/commit/878f90f45e37421384c4f8f602115e7596b4ceb9)
## 0.5.2 (2025-06-30)
Extended Documentation and bugfix for import Module
### bugfix (2 changes)
- [Default question variant saved and reused.](https://gitlab.com/jbosse3/excel2moodle/-/commit/097705ba83727463a9b27cd76e99814a7ecf28df)
- [bugfix: Import module working again](https://gitlab.com/jbosse3/excel2moodle/-/commit/5f293970bcdac3858911cdcc102b72714af057bd)
### documentation (1 change)
- [documentation: Added how to build question database](https://gitlab.com/jbosse3/excel2moodle/-/commit/71ceb122aa37e8bf2735b659359ae37d81017599)
### feature (1 change)
- [Implemented MC question string method](https://gitlab.com/jbosse3/excel2moodle/-/commit/c4f2081d0000ee60322fe8eec8468fa3317ce7be)
### improvement (1 change)
- [Implemented ClozePart object](https://gitlab.com/jbosse3/excel2moodle/-/commit/878f90f45e37421384c4f8f602115e7596b4ceb9)
## 0.5.1 (2025-06-24)
Minor docs improvement and question variant bugfix
### bugfix (1 change)
- [Bullet points variant didn't get updated](https://gitlab.com/jbosse3/excel2moodle/-/commit/7b4ad9e9c8a4216167ae019859ebaa8def81d57f)
## 0.5.0 (2025-06-20)
settings handling improved
### feature (2 changes)
- [Pixmaps and vector graphics scaled to fit in preview](https://gitlab.com/jbosse3/excel2moodle/-/commit/00a6ef13fb2a0046d7641e24af6cf6f08642390e)
- [feature: category Settings implemented](https://gitlab.com/jbosse3/excel2moodle/-/commit/d673cc3f5ba06051aa37bc17a3ef0161121cb730)
### improvement (1 change)
- [Tolerance is harmonized by questionData.get()](https://gitlab.com/jbosse3/excel2moodle/-/commit/8d1724f4877e1584cc531b6b3f278bdea68b5831)
### Settings Errors are logged (1 change)
- [Log Errors in settings Sheet](https://gitlab.com/jbosse3/excel2moodle/-/commit/07e58f957c69ea818db1c5679cf89e287817ced3)
Raw data
{
"_id": null,
"home_page": null,
"name": "excel2moodle",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "moodle, XML, teaching, question, converter, open educational Ressource",
"author": "Jakob Bosse",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/4a/f2/a07b46f47362104b4cb62f88eaf4b18b2864a2d3587afaff17df5308ef3b/excel2moodle-0.6.2.tar.gz",
"platform": null,
"description": "# excel 2 Moodle\n{width=35%}\n\n*excel2moodle* helps to create Moodle questions in less time.\nThe idea is to write the questions data into a spreadsheet file, from which the *excel2moodle* generates moodle compliant xml Files. \nAll questions or a selection of questions can then be imported into moodle.\n\n## Concept\nAt the heart the *excel2moodle* is a simple key-value-pair \"syntax\", where the key is set once in the first spreadsheet column.\nEach key can be provided with a value for each question in its column\nTo enhance reusability, key values which are correct for more than one question can be set per category or for all questions.\nThe concept is, to store the different questions into categories of similar types and difficulties of questions, for each of which, a separated sheet in the Spreadsheet document should be created.\n\nA `settings` sheet contains global settings to be used for all questions and categories.\nAnother sheet stores metadata for the different categories of questions.\nAnd each category lives inside a separate sheet inside the spreadsheet document. \n\n## Getting Started\n\n### Installation\nTo get started with excel2moodle first have a look at the [installation](https://jbosse3.gitlab.io/excel2moodle/howto.html#excel2moodle-unter-windows-installieren)\nIf you already have python and uv installed, it is as easy as running `uv tool install excel2moodle`.\n\n### [ Documentation ](https://jbosse3.gitlab.io/excel2moodle/index.html)\nOnce excel2moodle is installed you can checkout the [example question sheet](https://gitlab.com/jbosse3/excel2moodle/-/tree/master/example?ref_type=heads) \nin the repository. You need to download all Files in the `example` directory and save them together.\n\nMost steps are already documented as [ tutorials ](https://jbosse3.gitlab.io/excel2moodle/howto.html)\nyou can follow along.\n\nAnd please have a look into the [**user Reference**](https://jbosse3.gitlab.io/excel2moodle/userReference.html)\nof the documentation. \nThat part explains in more detail each part of defining a question.\n\n\n## Features\n- Fully parametrized numeric questions:\n * Formulas for the calculated results can be coded into extensive python modules, which can be loaded.\n- Question Preview:\n + This helps you when selecting the correct questions for the export.\n- Equation Verification:\n + this tool helps you to validate the correct equation for the parametrized Questions.\n- Variable Generation:\n + You can generate variables for the parametric Question to easily create hundreds of different variants of the same question.\n- Export Options:\n + you can export the questions preserving the categories in moodle\n\n### Question Types\n- Generate multiple Choice Questions:\n * The answers can be pictures or normal text\n- Generate Numeric Questions\n- Generate parametrized numeric Questions:\n * With the parametrization *excel2moodle* calculats the numeric answer from a given formula based on a set of variables.\n- Generate parametrized cloze Questions\n\n\n{width=80%}\n\n## Licensing and authorship\nexcel2moodle is lincensed under the latest [GNU GPL license](https://gitlab.com/jbosse3/excel2moodle/-/blob/master/LICENSE)\nInitial development was made by Richard Lorenz, and later taken over by Jakob Bosse\n\n## Supporting\nA special thanks goes to the [Civil Engineering Departement of the Fachhochschule Potsdam](https://www.fh-potsdam.de/en/study-further-education/departments/civil-engineering-department) \nwhere i was employed as a student associate to work on this project.\n\nIf You want to support my work as well, you can by me a [coffee](https://ko-fi.com/jbosse3)\n\n# Changelogs\n\n## 0.6.2 (2025-08-02)\nAdding export options and fixing cloze points bug\n\n### feature (4 changes)\n\n- [Added export options to include all Question Variants and generate report](https://gitlab.com/jbosse3/excel2moodle/-/commit/6433615de23174451748b69669a9dce748dd5b4d)\n- [Implemented export dialog generator method](https://gitlab.com/jbosse3/excel2moodle/-/commit/a8eda982309bf9a6dae7ef2b261a59654f2c8910)\n- [Answer Feedback strings settable in sheet](https://gitlab.com/jbosse3/excel2moodle/-/commit/ad90da49ac60e429ad3243f54846b08f0caf5bc7)\n- [Inverted result and feedback for NFM & Cloze questions](https://gitlab.com/jbosse3/excel2moodle/-/commit/57d77c83a661398b0082f84d25e5447000df9096)\n\n### improvement (1 change)\n\n- [Missing `settings` sheet raises an error](https://gitlab.com/jbosse3/excel2moodle/-/commit/e1cc42c1d31981bf74582b23c24c6ac378e9256d)\n\n### bugfix (1 change)\n\n- [resolve cloze moodle import error due to float points](https://gitlab.com/jbosse3/excel2moodle/-/commit/f13b7b9df39df55d65b6063a9deb1fc1c72f5ebb)\n\n## 0.6.1 (2025-07-12)\nFixing import error caused by dumping pyside meta package\n\n### bugfix (1 change)\n\n- [fixing pyside import error](https://gitlab.com/jbosse3/excel2moodle/-/commit/e5e0fc7695caa1a6864785828ff7311fa9624ad4)\n\n## 0.6.0 (2025-07-12)\nAdded variable generator and other architechtural improvements\n\n### documentation (1 change)\n\n- [Documenting variable generator usage](https://gitlab.com/jbosse3/excel2moodle/-/commit/3e4d3019b29872b5cfddf5539d5ebe7638bca049)\n\n### feature (5 changes)\n\n- [Opening spreadsheet file works from within excel2moodle](https://gitlab.com/jbosse3/excel2moodle/-/commit/9470f12ea5f098745a3210b281a5144a938ae8b5)\n- [Variables are copied to clipboard](https://gitlab.com/jbosse3/excel2moodle/-/commit/87a7e5ec75f899b293e89ad3c1742567e3ec1c29)\n- [Removed dependence on pyside6-addons](https://gitlab.com/jbosse3/excel2moodle/-/commit/2b3a7cf48581c14bd9cb570cd61d1d41aa410e11)\n- [Var Generator ready](https://gitlab.com/jbosse3/excel2moodle/-/commit/ea97f0639dc35a4c99a64ae3976ccc8a0ac5d109)\n- [Merge development of BulletsObj, Parametrization and VarGenerator](https://gitlab.com/jbosse3/excel2moodle/-/commit/40b46f3c143e082f1bb985d6c8c4e68bb6b6a7a8)\n\n### improvement (7 changes)\n\n- [Adapted Param. Parser to use bullet Obj](https://gitlab.com/jbosse3/excel2moodle/-/commit/194cab7cc6aecb2d25d1cb9c1538ed7d607dd9e1)\n- [Added bulleList Object](https://gitlab.com/jbosse3/excel2moodle/-/commit/4ea982b8d8dc270675d2cb059c59fa980ce38894)\n- [Parametrics in beta stage](https://gitlab.com/jbosse3/excel2moodle/-/commit/7d04d8ef2fc603c1b12b6934c827ce079df5d540)\n- [Refactor parse() method, to construct complete xml-Tree](https://gitlab.com/jbosse3/excel2moodle/-/commit/8dc4bea9aa0673d39357115254dd55b02c04114e)\n- [Refactored question assembly to only update fields.](https://gitlab.com/jbosse3/excel2moodle/-/commit/d7accb69be3b4a1e65f59eeecfb463f2663fabd4)\n- [Adapted NFM Question to parametricResult](https://gitlab.com/jbosse3/excel2moodle/-/commit/fe552cd2b538ca8886415c200e4a2a3ecc1fbb2f) ([merge request](https://gitlab.com/jbosse3/excel2moodle/-/merge_requests/5))\n- [Implemented ParametricResult Object](https://gitlab.com/jbosse3/excel2moodle/-/commit/e36d025955f1cab8e0542d66263ab70e3d8980df) ([merge request](https://gitlab.com/jbosse3/excel2moodle/-/merge_requests/5))\n\n## 0.5.2 (2025-06-30)\nExtended Documentation and bugfix for import Module\n\n### bugfix (2 changes)\n\n- [Default question variant saved and reused.](https://gitlab.com/jbosse3/excel2moodle/-/commit/097705ba83727463a9b27cd76e99814a7ecf28df)\n- [bugfix: Import module working again](https://gitlab.com/jbosse3/excel2moodle/-/commit/5f293970bcdac3858911cdcc102b72714af057bd)\n\n### documentation (1 change)\n\n- [documentation: Added how to build question database](https://gitlab.com/jbosse3/excel2moodle/-/commit/71ceb122aa37e8bf2735b659359ae37d81017599)\n\n### feature (1 change)\n\n- [Implemented MC question string method](https://gitlab.com/jbosse3/excel2moodle/-/commit/c4f2081d0000ee60322fe8eec8468fa3317ce7be)\n\n### improvement (1 change)\n\n- [Implemented ClozePart object](https://gitlab.com/jbosse3/excel2moodle/-/commit/878f90f45e37421384c4f8f602115e7596b4ceb9)\n\n## 0.5.2 (2025-06-30)\nExtended Documentation and bugfix for import Module\n\n### bugfix (2 changes)\n\n- [Default question variant saved and reused.](https://gitlab.com/jbosse3/excel2moodle/-/commit/097705ba83727463a9b27cd76e99814a7ecf28df)\n- [bugfix: Import module working again](https://gitlab.com/jbosse3/excel2moodle/-/commit/5f293970bcdac3858911cdcc102b72714af057bd)\n\n### documentation (1 change)\n\n- [documentation: Added how to build question database](https://gitlab.com/jbosse3/excel2moodle/-/commit/71ceb122aa37e8bf2735b659359ae37d81017599)\n\n### feature (1 change)\n\n- [Implemented MC question string method](https://gitlab.com/jbosse3/excel2moodle/-/commit/c4f2081d0000ee60322fe8eec8468fa3317ce7be)\n\n### improvement (1 change)\n\n- [Implemented ClozePart object](https://gitlab.com/jbosse3/excel2moodle/-/commit/878f90f45e37421384c4f8f602115e7596b4ceb9)\n\n## 0.5.1 (2025-06-24)\nMinor docs improvement and question variant bugfix\n\n### bugfix (1 change)\n\n- [Bullet points variant didn't get updated](https://gitlab.com/jbosse3/excel2moodle/-/commit/7b4ad9e9c8a4216167ae019859ebaa8def81d57f)\n\n## 0.5.0 (2025-06-20)\nsettings handling improved\n\n### feature (2 changes)\n\n- [Pixmaps and vector graphics scaled to fit in preview](https://gitlab.com/jbosse3/excel2moodle/-/commit/00a6ef13fb2a0046d7641e24af6cf6f08642390e)\n- [feature: category Settings implemented](https://gitlab.com/jbosse3/excel2moodle/-/commit/d673cc3f5ba06051aa37bc17a3ef0161121cb730)\n\n### improvement (1 change)\n\n- [Tolerance is harmonized by questionData.get()](https://gitlab.com/jbosse3/excel2moodle/-/commit/8d1724f4877e1584cc531b6b3f278bdea68b5831)\n\n### Settings Errors are logged (1 change)\n\n- [Log Errors in settings Sheet](https://gitlab.com/jbosse3/excel2moodle/-/commit/07e58f957c69ea818db1c5679cf89e287817ced3)\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A package for converting questions from a spreadsheet, to valid moodle-xml",
"version": "0.6.2",
"project_urls": {
"Documentation": "https://jbosse3.gitlab.io/excel2moodle",
"Repository": "https://gitlab.com/jbosse3/excel2moodle.git"
},
"split_keywords": [
"moodle",
" xml",
" teaching",
" question",
" converter",
" open educational ressource"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f92e716db3e5db5967f3c6b2c6952f9631b2110b5b0c4f5d7d5cea81fa41a304",
"md5": "ffddd3fc4bcf8480afbb52109023fba0",
"sha256": "7e42c7e0f5cc29de0492e23edc37cb1623a8547ed2a1fd205e341ae1b73ce23d"
},
"downloads": -1,
"filename": "excel2moodle-0.6.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ffddd3fc4bcf8480afbb52109023fba0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 76099,
"upload_time": "2025-08-02T18:15:46",
"upload_time_iso_8601": "2025-08-02T18:15:46.577983Z",
"url": "https://files.pythonhosted.org/packages/f9/2e/716db3e5db5967f3c6b2c6952f9631b2110b5b0c4f5d7d5cea81fa41a304/excel2moodle-0.6.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4af2a07b46f47362104b4cb62f88eaf4b18b2864a2d3587afaff17df5308ef3b",
"md5": "deccab8b19d98e3fe5dff45539e4018f",
"sha256": "f2b656d17142938123f4f2e1b754dc0d140c45070f7de12fd83c100e231755f5"
},
"downloads": -1,
"filename": "excel2moodle-0.6.2.tar.gz",
"has_sig": false,
"md5_digest": "deccab8b19d98e3fe5dff45539e4018f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 68376,
"upload_time": "2025-08-02T18:15:47",
"upload_time_iso_8601": "2025-08-02T18:15:47.720327Z",
"url": "https://files.pythonhosted.org/packages/4a/f2/a07b46f47362104b4cb62f88eaf4b18b2864a2d3587afaff17df5308ef3b/excel2moodle-0.6.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-02 18:15:47",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "jbosse3",
"gitlab_project": "excel2moodle",
"lcname": "excel2moodle"
}