cfspreadsheet で Excel ファイルを作成しようとしています。列の 1 つに html コードがありますが、何らかの理由で、Excel ファイルでは html がレンダリングされず、単なるテキストです。例えば。<b>blabla</b>
太字にする代わりに。
これに対する解決策を知っていますか?
cfspreadsheet で Excel ファイルを作成しようとしています。列の 1 つに html コードがありますが、何らかの理由で、Excel ファイルでは html がレンダリングされず、単なるテキストです。例えば。<b>blabla</b>
太字にする代わりに。
これに対する解決策を知っていますか?
その理由は、HTML コンテンツをサポートしていないcfspreadsheet
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
またはSpreadsheetFormatrows
またはのようなスプレッドシートの書式設定関数を使用できますSpreadsheetFormatColumns
。