我正在尝试在Z-OS机器上执行程序来编写Excel报告。 由于报告的大小,我们使用SXSSFWorkbook来编写报告。
报告中的一个单元格为灰色。所以我必须将Color应用于该单元格。 我使用以下代码来设置颜色。
XSSFCellStyle cellStyle = (XSSFCellStyle) wb.createCellStyle();
XSSFColor myColor = new XSSFColor(DatatypeConverter
.parseHexBinary("FFBFBFBF")); //also tried the java.awt.Color
cellStyle.setFillForegroundColor(myColor);
cell.setCellStyle(cellStyle);
但是对于生成的报告,此单元格颜色较深。 出于好奇,我检查了Excel文档中的Styles.xml。 以下是我发现的内容。
<fill><patternFill patternType="solid"><fgColor rgb="ããâãâãâã"/></patternFill></fill>
我尝试在Windows机器上生成相同的报告,它给了我正确的结果。
<fill><patternFill patternType="solid"><fgColor rgb="FFBFBFBF"/></patternFill>
有人可以帮我解决这个问题吗?
----------------------的 EDITED ----------------- ----------
我已经报告了一个错误。 https://issues.apache.org/bugzilla/show_bug.cgi?id=56683
要调试这个,我需要在POI中查看CT类的代码。 我按照以下链接中给出的说明生成代码。 http://poi.apache.org/faq.html#faq-N1012A
1)我无法找到'ooxml-schemas-src jar'。 2)我检查了POI代码和ANT构建它。
approch都没有给我CT代码的代码。 如果有人以前做过,请告诉我。
--------------- EDITED ----------------------------
不确定以下更新是否会解决此问题。需要尝试一下。
更新了'org.apache.poi.xssf.model.StylesTable'的writeTo()方法。
更改:添加以下行
'DEFAULT_XML_OPTIONS.setCharacterEncoding("UTF-8");'
/**
* Write this table out as XML.
*
* @param out The stream to write to.
* @throws IOException if an error occurs while writing.
*/
public void writeTo(OutputStream out) throws IOException {
//Setting default encoding to UTF-8
DEFAULT_XML_OPTIONS.setCharacterEncoding("UTF-8");
XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS);
由于我无法控制z / os服务器,所以我必须等到它接受测试。 同时,请让我知道你的想法。
答案 0 :(得分:0)
现在已经解决了。
有关详细信息,请参阅错误页面。 https://issues.apache.org/bugzilla/show_bug.cgi?id=56683