Quelle est la différence entre CellValues.InlineString et CellValues.Chaîne en OpenXML?
Je suis en train d'écrire un peu de code pour générer une feuille de calcul Excel et que je ne suis pas sûr de ce que la différence entre CellValues.InlineString et CellValues.Chaîne pour insérer du texte dans les cellules.
Doit-je utiliser ce:
private void UpdateCellTextValue(Cell cell,string cellValue)
{
InlineString inlineString = new InlineString();
Text cellValueText = new Text { Text = cellValue };
inlineString.AppendChild(cellValueText);
cell.DataType = CellValues.InlineString;
cell.AppendChild(inlineString);
}
ce
private void UpdateCellTextValue(Cell cell, string cellValue)
{
cell.CellValue = new CellValue(cellValue);
cell.DataType = new EnumValue<CellValues>(CellValues.String);
}
ou tout simplement cette (InsertSharedStringItem retourne l'Id de la nouvellement inséré chaîne partagée élément)
private void SetCellSharedTextValue(Cell cell,string cellValue)
{
int stringId = InsertSharedStringItem(cellValue);
cell.CellValue = new CellValue(stringId.ToString());
cell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
}
OriginalL'auteur mhttk | 2011-06-24
Vous devez vous connecter pour publier un commentaire.
Selon la documentation au 18.18.11 ST_CellType:
Vous ne souhaitez utiliser que les CellValues.Chaîne lorsque vous insérez une formule dans la cellule. Voici comment le XML devrait ressembler à:
CellValues.InlineString
doit uniquement être utilisé si vous ne voulez pas stocker la chaîne de caractères dans laSharedStringTable
. Ensuite, tout ce que vous marque comme uninlineString
seront traités comme du texte enrichi. À noter toutefois que lorsque vous utilisezCellValues.InlineString
que votre texte doit être entouré par un élément de texte et<is>
tag:J'ai mis à jour la réponse avec le lien pour télécharger le pdf de l'open xml spécification. Vous pouvez chercher ou faire référence à ce lien microsoft pour les exemples msdn.microsoft.com/en-us/library/...
OriginalL'auteur amurra