我正在尝试使用 cfspreadsheet 创建一个 excel 文件。在其中一列中,我有 html 代码,但由于某种原因,在 excel 文件中,html 没有被呈现,它只是纯文本。例如。<b>blabla</b>
而不是加粗。
你知道有什么解决办法吗?
我正在尝试使用 cfspreadsheet 创建一个 excel 文件。在其中一列中,我有 html 代码,但由于某种原因,在 excel 文件中,html 没有被呈现,它只是纯文本。例如。<b>blabla</b>
而不是加粗。
你知道有什么解决办法吗?
原因是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>
您可以使用电子表格格式化功能,例如SpreadsheetFormatRow
orSpreadsheetFormatrows
或SpreadsheetFormatColumns
。