有没有人知道一个用java编写的好库,为Apache POI提供流畅的包装?
POI case studies page(最后一个条目)上的丑小鸭条目指的是这样的。
答案 0 :(得分:1)
直接在github上搜索,我找到subtlib。
答案 1 :(得分:1)
我一直在寻找能够生成XLSX文件的DSL包装器。 Subtlib POI库只能生成XLS(BIFF)文件。我将Subtlib POI分叉编写XLSX文件:https://github.com/bekoeppel/poi-ooxml
答案 2 :(得分:1)
查看此存储库 nambach/ExcelUtil。支持以声明方式读写Excel文件。
public class Main {
static final Style HEADER_STYLE = Style
.builder()
.fontColorInHex("#ffffff")
.backgroundColorInHex("#191970")
.border(BorderSide.FULL)
.horizontalAlignment(HorizontalAlignment.LEFT)
.build();
static final Style OTHER_STYLES...
static final DataTemplate<Book> BOOK_TEMPLATE = DataTemplate
.fromClass(Book.class)
.includeFields("isbn", "title", "author")
.column(c -> c.title("Category")
.transform(book -> book.getCategory().getName())) // derive new column
.column(c -> c.field("rating")
.conditionalStyle(book -> book.getRating() > 4 ? // styles with conditions
HIGH_RATE : null))
.config(cf -> cf.startAtCell("A2")
.autoSizeColumns(true)
.headerStyle(HEADER_STYLE)
.dataStyle(DATA_STYLE)
.conditionalRowStyle(book -> book.getTitle() // selective styling
.contains("Harry Potter") ? FAVORITE_ONE : null));
public static void main(String[] args) {
List<Book> books = dataSource.fetchData();
InputStream stream = BOOK_TEMPLATE.writeData(books);
FileUtil.writeToDisk(".../books.xlsx", stream, true);
}
}