25

NPOIを使用してAsp.NetMVCアプリからExcelを出力し、プレーンテキストで非常にうまく機能しますが、書式設定を追加するように要求され、太字のテキストの後に太字でないテキストが続く単一のセルが必要な問題が発生しています。例えば

このテキストは太字-このテキストは通常

セルに単一のスタイルを与えることができることは知っていますが、これは役に立たず、セルに事前にフォーマットされたリッチテキストを与えることはできません。

私が考えることができる唯一の可能な解決策は、2つのセルを別々に作成し、それらをマージすることですが、それはフォーマットが失われることを意味しますか?

NPOIで見逃していたこれを行う方法はありますか?

4

5 に答える 5

27

あなたはこれを試すことができます:

        var font = reportWorkbook.CreateFont();
        font.FontHeightInPoints = 11;
        font.FontName = "Calibri";
        font.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD; 

        var cell = headerRow.CreateCell(0);
        cell.SetCellValue("Test Bold");
        cell.CellStyle = reportWorkbook.CreateCellStyle();
        cell.CellStyle.SetFont(font);
于 2011-08-25T21:29:42.247 に答える
26

幸いなことに、あなたはそれを行うことができます...このコードを見てください:

Font f1=wb.CreateFont();
f1.Color=HSSFColor.RED.index;
ws.GetRow(1).GetCell(0).RichStringCellValue.ApplyFont(1, 5, f1);
于 2011-08-02T11:51:19.470 に答える
6

おそらく名前空間の変更(または実際にHSSF名前空間を使用しているのですか?)が原因で、ErnieBanzonの回答が説明どおりに機能しなくなったようです。

// usings
using NPOI.HSSF.UserModel;

// IWorkbook doc
IFont font = doc.CreateFont();
font.FontHeightInPoints = 11;
font.FontName = "Arial";
font.Boldweight = (short)FontBoldWeight.BOLD;
于 2012-06-14T16:56:07.343 に答える
2

このオプションを使用する

 font.Boldweight = (short)700;//FontBoldWeight.Bold;

実際の構文は次のようになります。しかし、これらの構文はどちらもいつかは機能しません

font.Boldweight = FontBoldWeight.Bold ;  
Or 
font.Boldweight = (short)FontBoldWeight.Bold; 

FontBoldWeightは型列挙型であり、型キャスト後は機能しない場合があります。回避策として、カーストを入力するか、列挙型の実際の短い値を直接使用すると、機能します。以下はFontBoldWeightの宣言です。それは物事を明確にするでしょう。

**public enum FontBoldWeight
    {
              None = 0,
              Normal = 400,
              Bold = 700,
    }**
于 2016-10-12T15:45:51.897 に答える
0

かなりの量の調査の後、私がやろうとしていたようにセル内の特定のテキストにフォーマットを設定できるようにするために必要な機能が提供されていないため、NPOI内でこれを行うことはできないようです。

于 2011-07-12T13:45:11.920 に答える