{"id":34083739,"url":"https://github.com/matthijsbrouwer/excel-validator","last_synced_at":"2026-04-07T06:31:28.025Z","repository":{"id":244194005,"uuid":"798163385","full_name":"matthijsbrouwer/excel-validator","owner":"matthijsbrouwer","description":"Validation of template based Excel files","archived":false,"fork":false,"pushed_at":"2026-02-12T19:22:21.000Z","size":255,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-13T02:55:52.902Z","etag":null,"topics":["excel","frictionless","schema","template","validation"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/excel-validator/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthijsbrouwer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-09T08:10:19.000Z","updated_at":"2026-02-12T19:22:24.000Z","dependencies_parsed_at":"2024-06-13T10:57:44.205Z","dependency_job_id":"ea1d9325-199c-4b8f-8dbf-9a7618396a91","html_url":"https://github.com/matthijsbrouwer/excel-validator","commit_stats":null,"previous_names":["matthijsbrouwer/xlsx-validator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matthijsbrouwer/excel-validator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthijsbrouwer%2Fexcel-validator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthijsbrouwer%2Fexcel-validator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthijsbrouwer%2Fexcel-validator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthijsbrouwer%2Fexcel-validator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthijsbrouwer","download_url":"https://codeload.github.com/matthijsbrouwer/excel-validator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthijsbrouwer%2Fexcel-validator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31503381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["excel","frictionless","schema","template","validation"],"created_at":"2025-12-14T12:54:16.848Z","updated_at":"2026-04-07T06:31:28.020Z","avatar_url":"https://github.com/matthijsbrouwer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Excel Validator\n\nExcel Validator is a Python package designed to validate Excel files (.xlsx) based on configured schemas. The tool ensures your Excel files adhere to specified schemas and generates detailed reports in case of validation errors. Built on the robust Frictionless library, Excel Validator also allows for dynamic schema creation, where fields are included based on row data from other sheets.\n\n## Features\n\n* Validate Excel files against predefined schemas.\n* Generate detailed reports highlighting any validation issues.\n* Dynamic schema creation based on data from other sheets.\n* Easy integration with your existing data processing workflows.\n* Built on top of the [Frictionless library](https://framework.frictionlessdata.io/) for reliable and extensible validation.\n* Integrated webservice for online validation.\n\n## Installation\n\nThe software requires at least Python version 3.11. It is recommended to create and activate a dedicated conda environment for the installation of this software:\n\n```\nconda create -n excel-validator python=3.11\nconda activate excel-validator\n```\n\nNow you can install Excel Validator via pip:\n\n```\npip install excel-validator\n```\n\n## Usage\n\nOnce installed, the software can be directly used from the command line interface. Use the `--help` option to get additional instructions on how to use it:\n\n```\nusage: excel-validator [-h] {validate,configuration,webservice} ...\n```\n\nThree different commands can be used, each with its own options:\n\n* **validate**: validates the provided Excel file\n* **configuration**: creates an initial configuration based on the provided Excel file\n* **webservice**: starts a web service for online validation of Excel files\n\n### Examples\n\nValidation of Excel file:\n```\n# validate filename.xlsx using miappe template\nexcel-validator validate --config miappe filename.xlsx\n\n# validate filename.xlsx using miappe template and show report\nexcel-validator validate --config miappe --report filename.xlsx\n\n# validate filename.xlsx using miappe template and store report as filename.txt\nexcel-validator validate --config miappe filename.xlsx --createTextReport\n\n# validate filename.xlsx using custom template in location/configuration/custom\nexcel-validator validate --config location/configuration/custom filename.xlsx\n```\n\nCreate initial validation configuration for Excel file:\n```\n# create configuration filename.xlsx and store in location/configuration/initial\nexcel-validator configuration filename.xlsx --output location/configuration/initial\n```\n\nStart webservice for validation Excel files:\n```\n# start webservice and create new configuration file config.ini if it doesn't exist\nexcel-validator webservice\n\n# start webservice and using a specific configuration file\nexcel-validator webservice --config configuration/webservice/config.ini\n```\n\n### Python\n\nThe package can also imported directly in your Python application:\n\n```\nimport excel_validator\n\n#optionally enable logging\nimport logging\nlogging.basicConfig(format=\"%(asctime)s | %(levelname)s: %(message)s\", datefmt=\"%m-%d-%y %H:%M:%S\")\nlogging.getLogger(\"excel_validator.validator\").setLevel(logging.INFO)\n\nexcelFilename = \"/path/to/filename.xlsx\"\nconfigFilename = \"/path/to/specific/configuration\"\nvalidation = excel_validator.Validate(excelFilename,configFilename)\n```\n\nA configuration for [MIAPPE](https://www.miappe.org/) is already included in the software and can be used with:\n\n```\nconfigFilename = excel_validator.Validate.getConfigFilename(\"miappe\")\n```\n\nThe `validation` object contains the status (`validation.valid`) and can be used to create a report if the Excel file is found to be invalid:\n\n```\nvalidation.createMarkdownReport(\"report.md\")\nprint(validation.createTextReport())\n```\n\n---\nThis software has been developed for the [AGENT](https://www.agent-project.eu/) project\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthijsbrouwer%2Fexcel-validator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthijsbrouwer%2Fexcel-validator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthijsbrouwer%2Fexcel-validator/lists"}