{"id":23051040,"url":"https://github.com/xzel23/meja","last_synced_at":"2025-08-15T03:31:57.352Z","repository":{"id":29473083,"uuid":"33009751","full_name":"xzel23/meja","owner":"xzel23","description":"A library for manipulating and displaying spreadsheet (Excel) and other data in Java","archived":false,"fork":false,"pushed_at":"2024-12-09T10:03:03.000Z","size":26274,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-12T06:50:24.513Z","etag":null,"topics":["apache-poi","csv","excel","spreadsheet","swing-component"],"latest_commit_sha":null,"homepage":"http://xzel23.github.io/meja/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xzel23.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","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}},"created_at":"2015-03-27T21:21:55.000Z","updated_at":"2024-12-09T10:03:08.000Z","dependencies_parsed_at":"2023-09-30T04:29:54.157Z","dependency_job_id":"0f650e9c-f6ae-4813-a807-97041d46de1b","html_url":"https://github.com/xzel23/meja","commit_stats":null,"previous_names":[],"tags_count":154,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzel23%2Fmeja","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzel23%2Fmeja/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzel23%2Fmeja/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzel23%2Fmeja/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xzel23","download_url":"https://codeload.github.com/xzel23/meja/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229890093,"owners_count":18140042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["apache-poi","csv","excel","spreadsheet","swing-component"],"created_at":"2024-12-15T23:44:20.054Z","updated_at":"2025-08-15T03:31:57.288Z","avatar_url":"https://github.com/xzel23.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meja spreadsheet library\n[![Apache License](https://img.shields.io/badge/license-Apache-blue)](LICENSE)\n[![Language](https://img.shields.io/badge/language-Java-blue.svg?style=flat-square)](https://github.com/topics/java)\n[![build](https://github.com/xzel23/meja/actions/workflows/CI.yml/badge.svg)](https://github.com/xzel23/meja/actions/workflows/CI.yml)\n\nMeja is a library for handling tabular data such as Excel-Sheets, CSV-data etc.\n\n## Supported file formats\n\n - Excel (.xls and .xlsx)\n - CSV\n - ODF support coming later this year\n\n## Name\n\nAs it's rather common to give everything Java related a name of indo/malay origin, I chose 'meja' which is the\nindonesian word for table (as in furniture).\n\n## Using Meja in your projects\n\n* The Minimal Java version for the upcoming version 8.x is be **Java 21**.\n* The **Java 17 compatible version 7.x** will be maintained until the next LTS Java version (Java 25) is released.\n  Note that **Java 21/JavaFX 21** is already needed in version **7.x** for all JavaFX related modules.\n\nMeja is available in the Maven central repository.\n\nYou need at least the following modules:\n\n* `meja`: core functionality, CSV import and export, HTML export\n* `meja-generic`: generic implementation (memory efficient)\n\nAdd any combination of the following as needed:\n\n* `meja-poi`: Apache POI based implementation (supports Excel XLSX and XLS file format)\n* `meja-db`: for reading data directly from JDBC result sets\n* `meja-swing`: for displaying sheets and workbooks in Swing applications\n* `meja-fx`: for displaying sheets and workbooks in JavaFX applications\n\n**Maven**\n\n```\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.dua3.meja\u003c/groupId\u003e\n        \u003cartifactId\u003e[meja_module]\u003c/artifactId\u003e\n        \u003cversion\u003e[meja_version]\u003c/version\u003e\n    \u003c/dependency\u003e\n```\n\n**Gradle (Groovy DSL)**\n\n```\n    implementation 'com.dua3.meja:[meja_module]:[meja_version]'\n```\n\n**Gradle (Kotlin DSL)**\n\n```\n    implementation(\"com.dua3.meja:[meja_module]:[meja_version]\")\n```\n\n## Building\n\nJava 21 is required for building Meja.\n\nClone the repository and run `./gradlew build` to build the library, `./gradlew publishToMavenLocal` to publish to\nyour local Maven repository.\n\n## License\n\nMeja is released under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n## Modules\n\nMeja consists of different modules, each providing different functionality.\n\n### Module: com.dua3.meja\n\nThis is the base module providing functionality shared by different models.\n\n### Module: com.dua3.meja.generic\n\nA generic Workbook implementation. Fast and memory efficient. Use this implementation when creating workbooks in memory.\nAlso defines the CSV FileType.\n\n### com.dua3.meja.poi\n\nAn implementation backed by the Apache POI implementation of the Microsoft Office Excel file format. Defines FileTypes\nfor xls and xlsx files. Use this implementation to read and modify Excel files.\n\n### com.dua3.meja.swing\n\nDefines Swing controls for displaying Sheets and Workbooks.\n\n### com.dua3.meja.samples\n\nSeveral small samples to demonstrate how to use this library.\n\n### com.dua3.meja.fx\n\nUtilities for JavaFX.\n\n## Logging\n\nMeja uses Log4J2-API as logging facade, the same as the Apache POI library that is used for reading and writing\nExcel files.\n\n## Handling of `null` parameters and return values\n\nMeja uses [Cabe](https://github.com/xzel23/cabe) to ensure correct handling of `null` values.\n\nThis means that:\n\n- Only parameters marked as `@Nullable` accept `null` values. When `null` is passed for a parameter not marked as\n  `@Nullable`, an `IllegalArgumentException` is thrown. The name of the offending parameter is given in the exception message.\n\n- Only methods where the return value is marked as `@Nullable` will ever return `null`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxzel23%2Fmeja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxzel23%2Fmeja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxzel23%2Fmeja/lists"}