3

cfspreadsheet で Excel ファイルを作成しようとしています。列の 1 つに html コードがありますが、何らかの理由で、Excel ファイルでは html がレンダリングされず、単なるテキストです。例えば。<b>blabla</b>太字にする代わりに。

これに対する解決策を知っていますか?

4

2 に答える 2

5

その理由は、HTML コンテンツをサポートしていないcfspreadsheetPOI に基づいているためです。

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

SpreadsheetFormatRowまたはSpreadsheetFormatrowsまたはのようなスプレッドシートの書式設定関数を使用できますSpreadsheetFormatColumns

于 2012-12-17T10:33:43.330 に答える