2017-01-05 44 views
7

Korzystając z Coldfusion 10, muszę sformatować zawartość komórki w dwóch kolorach (czarnym i niebieskim). Niech komórka w arkuszu kalkulacyjnym zawiera ciąg "Text1: Text2". gdzie kolor "Tekst1" powinien być czarny, a "Tekst2" powinien być niebieski. Próbowałem poniżej kod, ale produkuje cały niebieski tekst.Formatowanie tekstu na komórce w dwóch kolorach w Coldfusion

SpreadsheetAddRow(spreadsheetData,"Text1: Text2",1,1); 
format1=StructNew(); 
format1.color="black"; 
SpreadsheetFormatRow(spreadsheetData,format1,1); 
format1.color="blue"; 
SpreadsheetFormatRow(spreadsheetData,format1,1); 

Example of Cell Text with Two Colors

Jak mogę zastosować dwa kolor formatowania pojedynczej komórki?

Odpowiedz

6

Nie jest obsługiwany z wbudowanymi funkcjami. Możesz jednak skorzystać z podstawowej biblioteki POI i użyć do tego celu RichTextString.

Zakładając, że został już utworzony arkusz oraz pusty komórek:

spreadsheetData = SpreadSheetNew("Sheet1", true); 
SpreadsheetAddRow(spreadsheetData,"",1,1); 

odniesienie Grab do podstawowych Workbook i tworzenia czcionek z odpowiednimi kolorami:

wb = spreadsheetData.getWorkbook(); 
Colors = createObject("java", "org.apache.poi.ss.usermodel.IndexedColors"); 
greenFont = wb.createFont(); 
greenFont.setColor(Colors.GREEN.index); 
blueFont = wb.createFont(); 
blueFont.setColor(Colors.BLUE.index); 

następnie utworzyć RichTextString obiekt i dołączyć każdą część tekstu o pożądanym kolorze:

// Using GREEN and BLUE for demo purposes 
richString = createObject("java", "org.apache.poi.xssf.usermodel.XSSFRichTextString").init(); 
richString.append("Text1: ", greenFont); 
richString.append("Text2", blueFont); 

Wreszcie, zastosuj RichTextString do pustej komórki, czyli A1, które utworzyłeś wcześniej. Uwaga, w przeciwieństwie do CF, indeksy są oparte na 0.

cell = wb.getSheet("Sheet1").getRow(0).getCell(0); 
cell.setCellValue(richString); 
+0

Dziękuję Leigh, to całkiem użyteczny kod. – Prak

+0

Cieszę się, że pomogło. – Leigh