2017-01-05 14 views
7

Coldfusion 10を使用して、セルの内容を2色(黒と青)でフォーマットする必要があります。スプレッドシートのセルに「Text1:Text2」という文字列が含まれるようにします。 「Text1」の色は黒で、「Text2」は青でなければなりません。 私は以下のコードを試しましたが、すべての青いテキストが生成されます。私は、単一のセルの書式を設定するには、2つの色を適用するにはどうすればよいColdfusionでセルのテキストを2色でフォーマットする

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

答えて

6

組み込み関数ではサポートされていません。しかし、基礎となるPOIライブラリを利用してRichTextStringを使ってこれを達成することができます。

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

基礎となるWorkbookにグラブ参照し、適切な色でフォントを作成します:

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); 

その後RichTextStringを作成するには、すでにワークシートを作成しているとセルが仮定し

目的の色でテキストの各部分を追加します。

// 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); 

最後に、以前作成したA1という空のセルにRichTextStringを適用します。 CFとは異なり、インデックスは0ベースです。

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

ありがとう、その非常に便利なコード。 – Prak

+0

喜んで助けました。 – Leigh

関連する問題