Apache POI: Indexed Color from AWT Color input











up vote
1
down vote

favorite












I am trying to replicate font and color from a given java.awt.Color and java.awt.Font in my Excel file created using apache POI. The latter works, however setting the color does not: while my fonts in Excel are colored green when directly set so by using IndexedColors.GREEN.getIndex(), using the java.awt.Color to create a XSSFColor does not work (see code below). How do i get the (closest) IndexedColor or even better use the original value of java.awt.Color in my POI font?



Current code snippet:



            Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work

font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());


(Apache POI 3.17)










share|improve this question
























  • Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
    – PJ Fanning
    Nov 22 at 22:57










  • Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
    – ptstone
    Nov 23 at 13:07












  • github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
    – PJ Fanning
    Nov 23 at 17:10






  • 1




    XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
    – PJ Fanning
    Nov 23 at 17:20










  • Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
    – ptstone
    Nov 23 at 17:29

















up vote
1
down vote

favorite












I am trying to replicate font and color from a given java.awt.Color and java.awt.Font in my Excel file created using apache POI. The latter works, however setting the color does not: while my fonts in Excel are colored green when directly set so by using IndexedColors.GREEN.getIndex(), using the java.awt.Color to create a XSSFColor does not work (see code below). How do i get the (closest) IndexedColor or even better use the original value of java.awt.Color in my POI font?



Current code snippet:



            Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work

font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());


(Apache POI 3.17)










share|improve this question
























  • Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
    – PJ Fanning
    Nov 22 at 22:57










  • Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
    – ptstone
    Nov 23 at 13:07












  • github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
    – PJ Fanning
    Nov 23 at 17:10






  • 1




    XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
    – PJ Fanning
    Nov 23 at 17:20










  • Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
    – ptstone
    Nov 23 at 17:29















up vote
1
down vote

favorite









up vote
1
down vote

favorite











I am trying to replicate font and color from a given java.awt.Color and java.awt.Font in my Excel file created using apache POI. The latter works, however setting the color does not: while my fonts in Excel are colored green when directly set so by using IndexedColors.GREEN.getIndex(), using the java.awt.Color to create a XSSFColor does not work (see code below). How do i get the (closest) IndexedColor or even better use the original value of java.awt.Color in my POI font?



Current code snippet:



            Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work

font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());


(Apache POI 3.17)










share|improve this question















I am trying to replicate font and color from a given java.awt.Color and java.awt.Font in my Excel file created using apache POI. The latter works, however setting the color does not: while my fonts in Excel are colored green when directly set so by using IndexedColors.GREEN.getIndex(), using the java.awt.Color to create a XSSFColor does not work (see code below). How do i get the (closest) IndexedColor or even better use the original value of java.awt.Color in my POI font?



Current code snippet:



            Font font = workbook.createFont();
//font.setColor(IndexedColors.GREEN.getIndex()); //Works
font.setColor(new XSSFColor(java.awt.Color.GREEN).getIndex()); //Does not work

font.setFontName(getFont(i,j).getFamily());
font.setFontHeightInPoints((short)getFont(i,j).getSize());
font.setItalic(getFont(i,j).isItalic());
font.setBold(getFont(i,j).isBold());


(Apache POI 3.17)







java colors apache-poi awt






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 at 16:41

























asked Nov 22 at 16:17









ptstone

13110




13110












  • Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
    – PJ Fanning
    Nov 22 at 22:57










  • Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
    – ptstone
    Nov 23 at 13:07












  • github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
    – PJ Fanning
    Nov 23 at 17:10






  • 1




    XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
    – PJ Fanning
    Nov 23 at 17:20










  • Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
    – ptstone
    Nov 23 at 17:29




















  • Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
    – PJ Fanning
    Nov 22 at 22:57










  • Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
    – ptstone
    Nov 23 at 13:07












  • github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
    – PJ Fanning
    Nov 23 at 17:10






  • 1




    XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
    – PJ Fanning
    Nov 23 at 17:20










  • Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
    – ptstone
    Nov 23 at 17:29


















Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
– PJ Fanning
Nov 22 at 22:57




Have you tried font.setColor(new XSSFColor(java.awt.Color.GREEN)) ?
– PJ Fanning
Nov 22 at 22:57












Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
– ptstone
Nov 23 at 13:07






Just checked to be sure, Font.setFont expects a short value (-> error if i try it this way).
– ptstone
Nov 23 at 13:07














github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
– PJ Fanning
Nov 23 at 17:10




github.com/apache/poi/blob/trunk/src/ooxml/java/org/apache/poi/…
– PJ Fanning
Nov 23 at 17:10




1




1




XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
– PJ Fanning
Nov 23 at 17:20




XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.
– PJ Fanning
Nov 23 at 17:20












Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
– ptstone
Nov 23 at 17:29






Thank you! For some reason my javadoc shows "All Known Implementing Classes: HSSFFont" for org.apache.poi.ss.usermodel.Font. But XSSFFont also implements it and it works like you said. If you want to put this as answer i will certainly accept.
– ptstone
Nov 23 at 17:29














1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53434889%2fapache-poi-indexed-color-from-awt-color-input%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.






        share|improve this answer












        XSSFWorkbook#createFont returns XSSFFont (an implementation of Font) and this XSSFFont class has a setColor(XSSFColor) method.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 at 17:58









        PJ Fanning

        42628




        42628






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53434889%2fapache-poi-indexed-color-from-awt-color-input%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            Alexandru Averescu

            Trompette piccolo