Question

J'utilise actuellement quelque chose comme cela pour insérer chaîne en ligne dans une cellule:

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

Mais \n ne fonctionne pas pour insérer saut de ligne, comment puis-je faire?


La réponse

new Cell(
         new CellValue("string \n string")
        ) 
    { 
        CellReference = "E2", 
        StyleIndex = (UInt32Value)4U, 
        DataType = CellValues.String         
    }
Était-ce utile?

La solution

Essayez CellValues.String au lieu de CellValues.InlineString.

Autres conseils

Vous devez faire deux choses:

1.) Marquer la cellule comme "Texte Enveloppé". Vous pouvez le faire dans la feuille de calcul à la main si vous utilisez une feuille de calcul existante comme modèle. Juste un clic droit sur la cellule (s) et sélectionnez " Format de cellule .. ", cliquez sur " Alignement " onglet et cochez la case « Wrap Texte » case à cocher.
OU ... Vous pouvez définir le programme CellFormat. Si vous avez un objet CellFormat appelé " cf ", vous feriez quelque chose comme ceci:

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) Vous ne devriez pas utiliser "\ n", au lieu que vous devriez utiliser le retour chariot standard + combinaison ligne d'alimentation. "\ R \ n"
Si vous mélangez les deux (à savoir « \ n » sans précédente « \ r » et « \ r \ n »), cela devrait corriger avant peuplant la valeur de la cellule:

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

Je, moi-même, ne pas utiliser CellValues.String ou même CellValues.InlineString .
Au lieu de cela je construis mes cellules texte à l'aide CellValues.SharedString (comme Excel fait).
Pour Bool utiliser " CellValues.Boolean ", et pour tous les autres (numerics et dates) Je ne mets pas de la cellule DataType à quoi que ce soit -. parce que c'est ce que fait Excel quand je regarde le balisage, il crée

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top