This is an object-oriented java library for reading and writing Microsoft Office Excel spreadsheets. It is a wrapper around Apache POI that provides elegant and user friendly interface for creating Excel documents.
How to use. Latest version here
<dependency>
<groupId>hr.com.vgv</groupId>
<artifactId>excel-io</artifactId>
</dependency>
Java version required: 1.8+.
new XsWorkbook(
new XsSheet(
new XsRow()
.with(new TextCells("name", "email", "salary", "bonus", "total"))
.with(
new XsStyle(
new ForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()),
new FillPattern(FillPatternType.SOLID_FOREGROUND)
)
),
new XsRow()
.with(new TextCells("Steve Hook", "steve.hook@gmail.com"))
.with(new NumberCells(160000.0, 35337.6))
.with(new FormulaCell("SUM(C3:D3)")
.with(
new XsStyle(
new ForegroundColor(IndexedColors.RED.getIndex()),
new FillPattern(FillPatternType.SOLID_FOREGROUND)
)
)
)
.with(new XsProps<>(new Height((short) 500)))
)
).saveTo("Test.xlsx");
This is how the result looks like:
Read from "Test.xlsx" file and modify cell int the second row/first column.
new XsWorkbook("Test.xlsx")
.with(new XsSheet.ReadFrom(0)
.with(
new XsRow(2,
new TextCell(1, "UPDATED")
)
)
).saveTo("Updated.xlsx");
You can create custom cells/rows/sheets:
new XsWorkbook(
new XsSheet(
new MyCustomRow("Boris", "Miksic", "ID:2450"),
new MyCustomRow("Mirko", "Mirkic", "ID:1690")
)
).saveTo("Test.xlsx");
Just extend appropriate template class and pass custom row/cell object to its constructor:
private static class MyCustomRow extends RowTemplate {
public MyCustomRow(final String name, final String surname, final String id) {
super(
new XsRow()
.with(new TextCells(name, surname))
.with(new MyGreyCell(new TextCell(id)))
);
}
}
private static class MyGreyCell extends CellTemplate {
public MyGreyCell(final ECell cell) {
super(cell.with(
new XsStyle(
new ForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()),
new FillPattern(FillPatternType.SOLID_FOREGROUND)
)
));
}
}
You can contribute by forking the repo and sending a pull request. Make sure your branch builds without any warnings/issues:
mvn clean install -Pqulice