{"id":37772697,"url":"https://github.com/isaaceindhoven/isaac-dotcms-excelreader","last_synced_at":"2026-01-16T14:55:12.374Z","repository":{"id":10904208,"uuid":"67217817","full_name":"isaaceindhoven/isaac-dotcms-excelreader","owner":"isaaceindhoven","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-20T22:11:14.000Z","size":5945,"stargazers_count":18,"open_issues_count":2,"forks_count":1,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-04-23T18:49:32.010Z","etag":null,"topics":["dotcms"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/isaaceindhoven.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}},"created_at":"2016-09-02T11:40:53.000Z","updated_at":"2024-04-23T18:49:32.011Z","dependencies_parsed_at":"2022-08-30T10:50:25.896Z","dependency_job_id":null,"html_url":"https://github.com/isaaceindhoven/isaac-dotcms-excelreader","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/isaaceindhoven/isaac-dotcms-excelreader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaaceindhoven%2Fisaac-dotcms-excelreader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaaceindhoven%2Fisaac-dotcms-excelreader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaaceindhoven%2Fisaac-dotcms-excelreader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaaceindhoven%2Fisaac-dotcms-excelreader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isaaceindhoven","download_url":"https://codeload.github.com/isaaceindhoven/isaac-dotcms-excelreader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isaaceindhoven%2Fisaac-dotcms-excelreader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":["dotcms"],"created_at":"2026-01-16T14:55:11.565Z","updated_at":"2026-01-16T14:55:12.362Z","avatar_url":"https://github.com/isaaceindhoven.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotCMS Excel Reader\n\nIf you want to display information that is stored in an Excel sheet on your [dotCMS](https://www.dotcms.com/) website, this is the plugin for you. The Excel Reader plugin can read .xls and .xlsx files for you, return it in a nice object and store it in the dotCMS cache. Reading Excel sheets just became very easy and fast!\n\nPrevious releases of this plugin for older dotCMS versions can be found [here](../../releases).\n\n## Features\n\n* Read .xls and .xlsx files.\n* Return .xls and .xlsx files as objects.\n* Store .xls and .xlsx files in the dotCMS cache.\n\n## Installation\n\nTo use it, you obviously first need to install the plugin. To install it take these steps:\n\n* Clone this repository.\n* Open the console and go the the folder containing pom.xml\n* Execute the following maven command: **mvn clean package**\n* The build should succeed and a folder named \"target\" will be created.\n* Open the \"target\" folder and check if the **.jar** file exists.\n* Open dotCMS and go to the dotCMS Dynamic Plugins page by navigating to \"System\" \u003e \"Dynamic Plugins\".\n* Click on \"Upload Plugin\" and select the .jar file located in the \"/target\" folder.\n* Click on \"Upload Plugin\" and the plugin should install and automatically start.\n* To check if the plugin is working, visit the following URL and replace **your-url-here** with your own site address: **http://your-url-here/app/servlets/monitoring/isaac-dotcms-excelreader**\n\nThat's it, you've installed the plugin and can use the excel reader.\n\n## Usage\n\nAfter deploying the plugin you can use it by calling the methods provided by the ExcelReaderTool class (viewtool). With the **$excel** reference you can access the methods in velocity.\n\n```\n#set($rowList = $excel.readExcel('d:\\data\\clients.xls'))\n#set($rowList2 = $excel.readExcelFromDotCMS('\\global\\excel\\clients.xlsx'))\n```\n\nThe excel sheet (.xls or .xlsx) is read, stored into the cache and returned as a list of Maps. The first row of the excel sheet should contain the column names, the other rows the data. To display the excel sheet data you can use the following code:\n\n```\n\u003ctable\u003e\n#foreach($row in $rowList)\n  \u003ctr\u003e\u003ctd\u003e$row.get('name')\u003c/td\u003e\u003ctd\u003e$row.get('email')\u003c/td\u003e\u003c/tr\u003e\n#end\n\u003c/table\u003e\n```\n\nTo check the header names you can use the following code:\n\n```\n$rowList.get(0).keySet()\n```\n\nAll the fields are returned as Objects, so even dates shouldn't pose a problem.\n\n## Tips \u0026 Tricks\n\nHere are a few more 'hard core' features that you might be interested in.\n\n#### Sorting and filtering the data\n\nThere are some extra features in this plugin to help you to display the excel data in a somewhat nicer way, by doing some server-side filtering and sorting:\n\n```java\n#set($contacts = $excel.readExcel('d:\\temp\\contacts.xlsx'))\n#set($contacts = $excel.filter($contacts, \"city\", \"eindhoven\"))\n#set($dummy = $excel.sort($contacts, \"name\"))\n```\n\nThis code first filters the fields in the column 'city' and checks for the String 'eindhoven'. To check this, the plugin converts the values to String (if they aren't already) and checks them ignoring the case. The sorting is done in about the same way, by converting the values in the column 'name' to String and sorting the strings.\n\n#### Excel parser software\n\nThe excel reader plugin uses [Apache POI](http://poi.apache.org) to parse the files.\n\n## Meta\n\n[ISAAC - 100% Handcrafted Internet Solutions](https://www.isaac.nl) – [@ISAAC](https://twitter.com/isaaceindhoven) – [info@isaac.nl](mailto:info@isaac.nl)\n\nDistributed under the [Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaaceindhoven%2Fisaac-dotcms-excelreader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisaaceindhoven%2Fisaac-dotcms-excelreader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisaaceindhoven%2Fisaac-dotcms-excelreader/lists"}