- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的系统使用来自 Java 的 Apache POI 生成许多不同的 Excel 报告。
很多这些报告共享相同的样式。
我已经创建了一个 CellStyle 库供所有报告使用。我想知道是否有更简洁的方法。
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Workbook;
public class CellStyles {
CellStyle headingCellStyle = null;
Workbook wb;
public CellStyles(Workbook wb) {
this.wb = wb;
}
public CellStyle getHeadingCellStyle() {
if (headingCellStyle == null) {
headingCellStyle = wb.createCellStyle();
headingCellStyle.setFillForegroundColor(HSSFColor.YELLOW.index);
headingCellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
}
return headingCellStyle;
}
}
然后调用它
Workbook wb = new XSSFWorkbook(inputStream); // XSSF for .xlsm
CellStyles cs = new CellStyles(wb);
CellUtil.getCell(myRow, 2).setCellStyle(cs.getHeadingCellStyle());
最佳答案
我认为考虑到它的简单性,这个解决方案很好。
不幸的是,在 POI 中,CellStyle
需要从 Workbook
创建,因此您无法真正避免以某种方式将 wb
作为参数传递。
除了您的实现之外,您可能会尝试在 CellStyles
中公开一堆 static
方法,将 wb
作为参数并返回样式,这样您就不需要在代码中传递 cs
对象。虽然我不会说这样做是值得的,但您需要维护 Map[Workbook, CellStyles]
映射的静态缓存,这将用于返回样式。
样式的延迟初始化也很有效,可以避免创建重复的样式,但最好将样式保持私有(private),即 private CellStyle headingCellStyle = null;
以确保没有任何内容可以更改样式分配在类之外,不会意外使用空值 headerCellStyle。
关于java - 在 Apache POI 中创建 CellStyle 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594822/
我正在使用 Java 中的 Apache POI 库构建 Excel 文件。我想要多个具有不同颜色的单元格,因此我创建了一种方法来构建我需要的样式。然后,我调用此方法来应用我需要的样式。 不幸的是,最
请注意:我看到一个非常提出的类似问题here但这个答案并不是很确定(我无法辨别实际的修复是什么)。如果有人可以向我解释该问题/答案如何解决我当前的问题,我会很乐意自己删除这个问题!只是请不要将 DV/
我不明白为什么会发生这种情况,首先我尝试在第一行的列标题中应用粗体文本,然后我想将标题单元格的边框设置为中等,但此中等边框样式应用于工作表中的所有单元格。在下面的相同代码中还有更多问题: 列标题(第一
我正在尝试对齐文本。这是我的 pom.xml: org.apache.poi poi-ooxml 3.17 在我的代码中:
我有一些代码,例如: CellStyle cs2 = wb.createCellStyle(); CellStyle cs4 = wb.createCellStyle(); cs4.setDataFo
我正在编写一个java代码,我必须比较两个Excel工作表,无论格式如何(xls或xlsx),并复制与新Excel工作表不同的行。然后我读到 WorkbookFactory 可以接受这两种格式。 下面
使用 apache POI ... 我使用了 workbook.CreateCellStyle(),如果一段时间后我需要删除创建的 CellStyle ... 如何从工作簿中删除它?我可以看到它仍然存
我有一个 Bootstrap-Table,它带有一个用于添加新数据行的按钮。我想为插入的每个新行的特定列(text2)的单元格着色。我正在使用内置方法 cellStyle(),如下所示:http://
我正在尝试获取 XLSX 文件单元格的字体颜色。 我正在使用 apache poi。 我能够获得单元格颜色,但不能获得字体颜色。 任何形式的建议将不胜感激。 谢谢 最佳答案 来自 XSSFCellSt
CellStyle stringStyle = workbook.createCellStyle(); stringStyle.setAlignment(HorizontalAlignment.CEN
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
我正在尝试让自定义颜色在 Apache POI 中工作,但遇到了一个小问题。到目前为止,我一直在使用 IndexedColors,但作为调色板,它相当单调。因此,使用 RGB 格式进行颜色选择将帮助我
我想使用Apple给定的单元格样式value1对于我的细胞,我不确定这是如何正确完成的。设置单元格样式的唯一可能的方法是在Cell's initialization期间。 ,但我认为在这种情况下子类化
我的系统使用来自 Java 的 Apache POI 生成许多不同的 Excel 报告。 很多这些报告共享相同的样式。 我已经创建了一个 CellStyle 库供所有报告使用。我想知道是否有更简洁的方
例如,我有一些具有简单模型的 MVVM WPF 应用程序: public class MyObject { public string F1 { get; set; } public
正如您从标题中可以理解的那样,在第 41 行之后,即使通过调试我看到代码运行良好,我的风格也不适用。 我的功能是: private void writeTable(Table table,Row ro
环境: Primefaces 6.1 野蝇10 java 8 我遇到的问题是以下错误 Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss
我想将一些记录写入 excel 但我知道 XSSFWorkbook 中的最大单元格样式是 64000。但记录超过 64000 并且考虑我想要将新的 cellstyle 应用于每个单元格,或者我将使用现
我想将 boolean 值写入 Excel 单元格,但不是将单元格样式设置为“逻辑”,而是将单元格样式设置为“数字”。 private void writeToDocument(XSSFWorkboo
我是一名优秀的程序员,十分优秀!