在Coldfusion中以单色格式化单元格上的文本

Pra*_*rak 7 coldfusion spreadsheet cfspreadsheet

使用Coldfusion 10,我需要格式化两种颜色(黑色和蓝色)的单元格内容.让电子表格上的单元格包含字符串"Text1:Text2".其中"Text1"的颜色应为黑色,"Text2"的颜色应为蓝色.我尝试了下面的代码,但它产生了所有蓝色文本.

SpreadsheetAddRow(spreadsheetData,"Text1: Text2",1,1); 
format1=StructNew(); 
format1.color="black";
SpreadsheetFormatRow(spreadsheetData,format1,1);
format1.color="blue";
SpreadsheetFormatRow(spreadsheetData,format1,1);
Run Code Online (Sandbox Code Playgroud)

两种颜色的单元格文本示例

我如何应用两种颜色来格式化单细胞?

Lei*_*igh 6

内置函数不支持它.但是,您可以使用基础POI库并使用RichTextString来完成此任务.

假设您已经创建了工作表和一个单元格:

spreadsheetData = SpreadSheetNew("Sheet1", true);
SpreadsheetAddRow(spreadsheetData,"",1,1); 
Run Code Online (Sandbox Code Playgroud)

获取对底层工作簿的引用并使用适当的颜色创建字体:

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);
Run Code Online (Sandbox Code Playgroud)

然后创建一个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);
Run Code Online (Sandbox Code Playgroud)

最后,将RichTextString应用于空单元格,即您之前创建的A1.注意,与CF不同,索引是从0开始的.

cell = wb.getSheet("Sheet1").getRow( 0 ).getCell( 0 );
cell.setCellValue(richString);
Run Code Online (Sandbox Code Playgroud)