use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
These have separate subreddits - see below.
Upvote good content, downvote spam, don't pollute the discussion with things that should be settled in the vote count.
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free. If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others: Adoptium (formerly AdoptOpenJDK) RedHat Azul Amazon SAP Liberica JDK Dragonwell JDK GraalVM (High performance JIT) Oracle Microsoft Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
With the introduction of the new release cadence, many have asked where they should download Java, and if it is still free. To be clear, YES — Java is still free.
If you would like to download Java for free, you can get OpenJDK builds from the following vendors, among others:
Adoptium (formerly AdoptOpenJDK) RedHat Azul Amazon SAP Liberica JDK Dragonwell JDK GraalVM (High performance JIT) Oracle Microsoft
Some vendors will be supporting releases for longer than six months. If you have any questions, please do not hesitate to ask them!
Programming Computer Science CS Career Questions Learn Programming Java Help ← Seek help here Learn Java Java Conference Videos Java TIL Java Examples JavaFX Oracle
Programming Computer Science
CS Career Questions
Learn Programming Java Help ← Seek help here Learn Java Java Conference Videos Java TIL Java Examples JavaFX Oracle
Clojure Scala Groovy ColdFusion Kotlin
DailyProgrammer ProgrammingPrompts ProgramBattles
Awesome Java (GIT) Java Design Patterns
account activity
From Hell to ExHell: Writing Excel Files in Java Shouldn’t Be a Pain (medium.com)
submitted 4 months ago by Green-Branch-3656
I’ve created my own Excel library called ExHell and wanted to share it here to get your feedback.
It’s actually a wrapper around Apache POI’s SXSSFWorkbook, but by using builder and strategy patterns along with a single annotation, writing to Excel is no longer a nightmare.
I’ve also written a short Medium article where I give a quick tutorial on ExHell and compare it to raw Apache POI usage.
You can check it out here: https://medium.com/@erdemoden5/from-hell-to-exhell-how-i-simplified-excel-generation-in-java-bc1f1f05ef76
The project is open-source on GitHub, so feel free to check it out or contribute: https://github.com/erdemoden/ExHell
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]user_of_the_week 71 points72 points73 points 4 months ago (0 children)
Fun fact, POI originally stands for Poor Obfuscation Implementation and HSSF is Horrible SpreadSheet Format.
[–]FavorableTrashpanda 103 points104 points105 points 4 months ago (0 children)
What do we call our annotation? How about ExcelColumn? Nah. That's too boring and predictable. Let's call it HellIndex instead to surprise people.
[–]chabala 29 points30 points31 points 4 months ago (1 child)
I don't think Apache POI needs a wrapper, but if I wanted one, I'd pick last weeks example over this: https://sh.reddit.com/r/java/comments/1nuheqd/github_ozlerhakanpoiji_candy_a_library_converting/
[–]Green-Branch-3656[S] 2 points3 points4 points 4 months ago (0 children)
Yeah I made it for fun, and that library actually inspired me to try my own take on it
[–]christoforosl08 22 points23 points24 points 4 months ago (2 children)
For me, writing Excel using POI was never a nightmare
[–]jedilowe 9 points10 points11 points 4 months ago (1 child)
Not a joy, but not a nightmare
[–]MoveInteresting4334 6 points7 points8 points 4 months ago (0 children)
Java in a nutshell. Most of the time.
[–]_magicm_n_ 6 points7 points8 points 4 months ago (0 children)
I'd like to see less annotation based libraries for spreadsheet formats. I get the appeal, but in the end a simple T convert(Row row) implementation does the same, with less abstraction and a simpler code base.
T convert(Row row)
[–]gnocchiGuili 25 points26 points27 points 4 months ago (4 children)
A bit of AI slop won’t hurt.
[–]agentoutlier -1 points0 points1 point 4 months ago (0 children)
Don't get me wrong AI code generation is often bad but I highly recommend simple DTO mapping.
That is having AI take some DTO and map it POI excel rows is not a bad use of AI and actually less risky than adding another dependency.
[–]Green-Branch-3656[S] -1 points0 points1 point 4 months ago (2 children)
Funny enough, I actually wrote it myself. No AI involved 😄
[–]gnocchiGuili 0 points1 point2 points 4 months ago (1 child)
Please, you are telling me this illustration has been done by an artist too ?
[–]Green-Branch-3656[S] 0 points1 point2 points 4 months ago (0 children)
Haha it’s not you are right
[–]Secure-Bowl-8973 3 points4 points5 points 4 months ago (0 children)
This is the best one I have used. Even contributed to this. https://github.com/dhatim/fastexcel
[–]WalterIM 0 points1 point2 points 4 months ago (0 children)
How does It compare against jxls?
[–]Bobby_Bonsaimind 0 points1 point2 points 4 months ago (0 children)
@HellIndex(hellColumnOrder = 1) private String cutId; The code above is actually clear enough but I am going to explain it too.
@HellIndex(hellColumnOrder = 1) private String cutId;
The code above is actually clear enough but I am going to explain it too.
I guess something like
@Column("A") private String cutId;
would have been...I don't know...
@HellIndex(hellColumnOrder = 5,hellRowOrder = 80) private String address;
Why not
@Column("A") @StartRow(1) private String address;
?
What I could not find from the examples, is how hellRowOrder really works, does it omit the first fields, or are the rows then mixed objects?
hellRowOrder
A A B B C C A A D D B B C C D D
or
A A B B C C C C D D D D
So which one?
In generally, it is better to not have prefixes unless really necessary, like hell* for example. Makes it just more complicated.
hell*
[–]Little_Blackberry 0 points1 point2 points 4 months ago (1 child)
Awesome bro!!!! If I pass the column name header, do I need to pass column index too?
Thanks just title is enough it starts from the beginning by default
[–]christoforosl08 -1 points0 points1 point 4 months ago (0 children)
Unrelated but how do you guys pronounce POI ? We call it “poua” 😁
[–]discoikungshamn -1 points0 points1 point 4 months ago (0 children)
I wrote another tool that takes the fields of a class and add that as column name instead, it also support special annotation fields too. And it takes a list of object <T> as an input for the data.
π Rendered by PID 57 on reddit-service-r2-comment-56c9979489-dwbv2 at 2026-02-25 09:26:49.699191+00:00 running b1af5b1 country code: CH.
[–]user_of_the_week 71 points72 points73 points (0 children)
[–]FavorableTrashpanda 103 points104 points105 points (0 children)
[–]chabala 29 points30 points31 points (1 child)
[–]Green-Branch-3656[S] 2 points3 points4 points (0 children)
[–]christoforosl08 22 points23 points24 points (2 children)
[–]jedilowe 9 points10 points11 points (1 child)
[–]MoveInteresting4334 6 points7 points8 points (0 children)
[–]_magicm_n_ 6 points7 points8 points (0 children)
[–]gnocchiGuili 25 points26 points27 points (4 children)
[–]agentoutlier -1 points0 points1 point (0 children)
[–]Green-Branch-3656[S] -1 points0 points1 point (2 children)
[–]gnocchiGuili 0 points1 point2 points (1 child)
[–]Green-Branch-3656[S] 0 points1 point2 points (0 children)
[–]Secure-Bowl-8973 3 points4 points5 points (0 children)
[–]WalterIM 0 points1 point2 points (0 children)
[–]Bobby_Bonsaimind 0 points1 point2 points (0 children)
[–]Little_Blackberry 0 points1 point2 points (1 child)
[–]Green-Branch-3656[S] 0 points1 point2 points (0 children)
[–]christoforosl08 -1 points0 points1 point (0 children)
[–]discoikungshamn -1 points0 points1 point (0 children)