Domanda

Sto usando JExcelApi per la generazione di file XLS. Da jxl.format.Colour , vedo come ottenere uno qualsiasi dei colori nella "tavolozza di colori standard di Excel", ma non come creare un nuovo colore (ad esempio, data la sua RGB).

Ma in Excel stesso, posso scegliere qualsiasi colore a tutti.

Mi sto solo perdendo esso? C'è un modo in JExcelApi per selezionare un colore arbitrario? Sto usando un semplice metodo find-the-vicino-standard di colore in questo momento, che è OK, ma non eccezionale.

È stato utile?

Soluzione

versioni di Excel precedenti al 2007 sono una tavolozza di serie, e dato che l'API si sta utilizzando non supporta il formato del 2007, si può essere bloccato con quello. La ragione per cui si può scegliere qualsiasi colore desiderato è probabilmente perché si sta utilizzando una nuova versione di Excel.

questa informazione sul sito di Microsoft .

Non vedo come si possa ignorare la tavolozza dei colori standard nel API che si sta utilizzando, ma in Apache POI (che consente anche di scrivere file di Excel) è possibile: vedere noreferrer questo link . Fondamentalmente, quello che dovete fare è: assegnare alcuni colori standard (verde, ecc) per le cellule; quindi di override questi colori con qualsiasi colore personalizzato è necessario.

Altri suggerimenti

Il modo per ignorare un indice di tavolozza in JExcel API è quello di utilizzare il metodo [setColourRGB] [1] nella cartella di lavoro scrivibile. Per esempio:

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

se si vuole cambiare il valore del colore nella voce della tavolozza dove si trova per default il secondo turchese luce. O, più facilmente in alcuni casi, direttamente con l'indice di tavolozza:

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

Un piccolo aggiornamento:. Solo gli indici da 8 a 64 può essere adattato secondo un commento all'interno del codice sorgente di jxl.biff.PaletteRecord

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

WritableCellFormat cellFormat = new WritableCellFormat();

Colour customColor = new Colour(10000, "1", 255, 0, 0){     
};

cellFormat.setBackground(customColor);  
writableCell.setCellFormat(cellFormat);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top