代码之家  ›  专栏  ›  技术社区  ›  Ken

在Jexcelapi中制作新颜色

  •  7
  • Ken  · 技术社区  · 15 年前

    我正在使用jexcelapi生成XLS文件。从 jxl.format.Colour 我看到了如何获取“标准Excel调色板”中的任何颜色,而不是如何创建新颜色(例如,给定其RGB)。

    但在Excel本身中,我可以选择任何颜色。

    我只是错过了吗?在jexcelapi中有选择任意颜色的方法吗?我现在使用的是一个简单的“查找最近的标准颜色”方法,这是可以的,但不太好。

    4 回复  |  直到 12 年前
        1
  •  4
  •   xcut    15 年前

    2007年以前的Excel版本有一个标准的调色板,并且考虑到您使用的API不支持2007格式,您可能会坚持使用它。您可以选择任何颜色的原因可能是因为您使用的是新版本的Excel。

    this information on the Microsoft site .

    我不知道您如何覆盖正在使用的API中的标准调色板,但是在ApachePOI(它还允许您编写Excel文件)中,您可以:请参见 this link . 基本上,你需要做的是:给你的单元格指定特定的标准颜色(绿色等);然后 重写 这些颜色有你需要的任何定制颜色。

        2
  •  15
  •   Damien B    15 年前

    重写jexcel api中调色板索引的方法是在可写工作簿上使用方法[setcolourgb][1]。例如:

    myWorkbook.setColourRGB(Colour.LIGHT_TURQUOISE2, 14, 67, 89);
    

    如果要更改调色板条目中的颜色值,则默认情况下会有第二个浅绿松石。或者,在某些情况下更容易直接使用调色板索引:

    myWorkbook.setColourRGB(Colour.getInternalColour(myPaletteIdx), 14, 67, 89);
    

    一个小的更新:只有从8到64的索引可以根据jxl.biff.paletterecord源代码中的注释进行定制。

    〔1〕: http://jexcelapi.sourceforge.net/resources/javadocs/current/docs/jxl/write/WritableWorkbook.html#setColourRGB(jxl.format.Colour ,int,int,int)

        3
  •  5
  •   mmmmmm    12 年前
    WritableCellFormat cellFormat = new WritableCellFormat();
    
    Colour customColor = new Colour(10000, "1", 255, 0, 0){     
    };
    
    cellFormat.setBackground(customColor);  
    writableCell.setCellFormat(cellFormat);
    
        4
  •  -3
  •   ukanth    15 年前

    看一下JXL颜色类的源代码

    http://www.docjar.com/html/api/jxl/format/Colour.java.html

    而jexcel是一个开源软件:)