gpt4 book ai didi

java - Apache POI 背景颜色样式似乎不起作用

转载 作者:行者123 更新时间:2023-12-02 12:47:48 36 4
gpt4 key购买 nike

晚上好!我在使用 apache poi v. 3.14 时遇到了一些问题,当我使用 Libreoffice 或 Excel 打开渲染的 xlsx 时,样式未正确应用。

我有这个代码:

class... {

private XSSFCellStyle doubleLockStyle;
/**
* Create default cell style.
*
* @param myWorkBook
* @return The cell style.
*/
private XSSFCellStyle createCell(XSSFWorkbook myWorkBook, boolean locked) {
XSSFCellStyle cs = myWorkBook.createCellStyle();
cs.setAlignment(HorizontalAlignment.CENTER);
if (locked) {
cs.setFillBackgroundColor(LOCKED_COLOR); //rgb from awt colors
cs.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cs.setLocked(true);
} else {
cs.setLocked(false);
}
return cs;
}

/**
* Prepare cell styles.
*
* @param myWorkBook
*/
private void initStyles(XSSFWorkbook myWorkBook) {
...
short df = myWorkBook.createDataFormat().getFormat("0.00");
doubleLockStyle = createCell(myWorkBook, true);
doubleLockStyle.setDataFormat(df);
...
}
private void writeSheet(XSSFWorkbook myWorkBook, CalendarValueType type, Date startDate, Date endDate) {
...
cell.setCellStyle(doubleLockStyle);
...
}
}

工作表已设置为锁定。输出不显示背景颜色,也不锁定单元格。我不知道出了什么问题。我也尝试看看这是否是一个已知的错误,但事实并非如此。有人遇到过同样的问题吗?如果我将背景填充图案更改为斜线,单元格会锁定,但背景在 Excel 和 Libre Office 之间无法正确显示。谢谢!

最佳答案

背景颜色的问题是颜色有点不直观。单元格具有三种颜色,一种用于字体,两种用于填充。填充就是大多数人所说的单元格背景。它作为填充图案实现,并具有前景色和背景色。当您使用实心填充时:

cs.setFillPattern(FillPatternType.SOLID_FOREGROUND);

唯一使用的颜色是填充前景色,您可以使用以下方法设置:

cs.setFillForegroundColor(LOCKED_COLOR);

您使用的填充背景颜色在使用纯色填充图案时不可见。

要使锁定的单元格正常工作,您必须通过以下方式启用工作表保护:

Sheet.protectSheet(password)

您必须设置密码,如果密码为null则保护被禁用。您可以使用以下方法删除密码:

Sheet.setSheetPassword(null, null);

关于java - Apache POI 背景颜色样式似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212386/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com