10

私は現在、セルにインライン文字列を挿入するために次のようなものを使用しています:

new Cell() 
{ 
    CellReference = "E2", 
    StyleIndex = (UInt32Value)4U, 
    DataType = CellValues.InlineString, 
    InlineString = new InlineString(new Text( "some text")) 
}

しかし\n、改行を挿入することはできません。どうすればよいですか?


応答

new Cell(
         new CellValue("string \n string")
        ) 
    { 
        CellReference = "E2", 
        StyleIndex = (UInt32Value)4U, 
        DataType = CellValues.String         
    }
4

2 に答える 2

13

次の 2 つのことを行う必要があります。

1.)セルを「ラップされたテキスト」としてマークします。既存のスプレッドシートをテンプレートとして使用している場合は、スプレッドシートで手動でこれを行うことができます。セルを右クリックして [セルの書式設定] を選択し、[配置] タブをクリックして [テキストの折り返し]チェックボックスをオンにします。
または...プログラムで CellFormat を設定できます。「 cf 」という CellFormat オブジェクトがある場合は、次のようにします。

cf.ApplyAlignment = true;//Set this so that Excel knows to use it.
if (cf.Alignment == null)//If no pre-existing Alignment, then add it.
  cf.Alignment = new Alignment() { WrapText = true };
Alignment a = cf.Alignment;
if (a.WrapText == null || a.WrapText.Value == false)
  a.WrapText = new BooleanValue(true);//Update pre-existing Alignment.

2.)「\n」は使用しないでください。代わりに、標準のキャリッジ リターン + ライン フィードの組み合わせを使用する必要があります: 「\r\n
」 "\r" および "\r\n")、セルの値を入力する前にこれを修正する必要があります。

sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");

私自身、 CellValues.StringCellValues.InlineStringも使用しません。代わりに、 (Excel と同じように) CellValues.SharedString
を使用してテキスト セルを作成します。Bool の場合は「CellValues.Boolean」を使用し、その他すべて (数値と日付) の場合は、セルのDataTypeを何も設定しません。これは、Excel が作成するマークアップを確認したときにそれが行われるためです。

于 2011-11-15T19:53:18.150 に答える
6

CellValues.InlineStringの代わりにCellValues.Stringを試してください。

于 2009-04-09T01:45:23.377 に答える