3

我正在尝试使用 cfspreadsheet 创建一个 excel 文件。在其中一列中,我有 html 代码,但由于某种原因,在 excel 文件中,html 没有被呈现,它只是纯文本。例如。<b>blabla</b>而不是加粗。

你知道有什么解决办法吗?

4

2 回答 2

5

原因是cfspreadsheet基于不支持 html 内容的 POI 。

正如user1450455 提到的,您可以使用任何内置格式化函数(例如 SpreadsheetFormatCell)来格式化整个单元格。

  sheet = spreadSheetNew();
  spreadSheetFormatCell( sheet, {bold=true} , 1, 1 );
  spreadSheetSetCellValue( sheet, "blablah", 1, 1 );

如果您希望创建具有多种格式的单元格(即加粗某些字符但不加粗其他字符),这只能通过创建RichTextString使用底层 POI 库来实现。所以它需要低得多的代码。

<cfscript>
    sheet     = spreadSheetNew();
    workbook  = sheet.getWorkBook();
    helper    = workbook.getCreationHelper();
    richText  = helper.createRichTextString("ColdFusion");

    // make first few characters bold ie "Cold"
    firstFont = workbook.createFont();
    firstFont.setBoldweight( firstFont.BOLDWEIGHT_BOLD );
    richText.applyFont( 0, 4, firstFont );

    // make next characters red ie "Fusion"
    secondFont = workbook.createFont();
    secondFont.setColor( secondFont.COLOR_RED );
    richText.applyFont( 4, 10, secondFont );

    // create cell via CF and apply formats
    // note, in POI indexes are base 0
    spreadSheetSetCellValue( sheet, "", 2, 1);
    cellA2 = workbook.getSheetAt(0).getRow(1).getCell(0);
    cellA2.setCellValue( richText );
</cfscript>
于 2012-12-17T17:57:01.403 回答
0

您可以使用电子表格格式化功能,例如SpreadsheetFormatRoworSpreadsheetFormatrowsSpreadsheetFormatColumns

于 2012-12-17T10:33:43.330 回答