OpenXML SDK ayant des frontières pour la cellule
J'ai le code suivant qui ajoute une cellule avec des valeurs et de type de données de la cellule dans OpenXML SDK:
Cell cell = InsertCellInWorksheet(column, row, worksheetPart);
cell.CellValue = new CellValue(index.ToString());
cell.DataType = new EnumValue<CellValues>(CellValues.SharedString);
De cette cellule, comment puis-je ajouter une bordure de chaque côté? Je tiens à ajouter une couleur d'arrière-plan sur la cellule.
J'ai la suite mais vous ne savez pas comment ajouter de la frontière de la cellule:
Borders borders1 = new Borders() { Count = (UInt32Value)1U };
Border border1 = new Border();
LeftBorder leftBorder1 = new LeftBorder();
RightBorder rightBorder1 = new RightBorder();
TopBorder topBorder1 = new TopBorder();
BottomBorder bottomBorder1 = new BottomBorder();
border1.Append(leftBorder1);
border1.Append(rightBorder1);
border1.Append(topBorder1);
border1.Append(bottomBorder1);
borders1.Append(border1);
Merci d'avance
OriginalL'auteur Nate Pet | 2013-04-03
Vous devez vous connecter pour publier un commentaire.
Je recommande l'installation de la Open XML 2.0 outil de productivité. Ensuite, créer un nouveau document Excel qui contient la bordure et la couleur que vous désirez. Ouvrez ce fichier dans l'outil de productivité et puis cliquez sur refléter code. Il vous donnera alors le code C# qui est nécessaire pour produire de la bordure et la couleur d'arrière-plan. Le code est un peu long pour l'affichage, mais si vous suivez ces étapes, vous devriez être en mesure de l'utiliser.
**Edit**
La frontière et les propriétés de remplissage sont stockées dans une partie distincte appelée la
WookbookStylesPart
. Cette partie est là que vous allez insérer le type de bordure, remplissage, la police, etc que vous souhaitez appliquer à une cellule dans un classeur. Ces propriétés sont stockées dans un tableau de type de structure où vous avez accès, le style que vous avez inséré via un index. Puisque vous pouvez avoir plusieurs styles appliqués à une cellule, d'unCellFormat
objet est l'endroit où tous les indices pour les différents styles sont stockés. Une fois que vous avez unCellFormat
pour une cellule, son index doit être référencé sur la réelle de la cellule via laStlyeIndex
de la propriété. C'est comment la cellule sait comment appliquer les différents styles sur lui-même.Voici le code pour créer de la frontière:
Voici le code pour ajouter un remplissage:
Vous aurez besoin de ce code pour insérer la frontière et de remplissage dans le style de la partie:
Vous devez d'abord obtenir une référence à la cellule que vous souhaitez ajouter à la remplir et à la frontière du où la cellAddress est dans la forme de "B2":
Puis une fois que vous obtenez votre cellule vous avez besoin pour obtenir le
CellFormat
qui font partie de la cellule et aussi pour ajouter une nouvelleCellFormat
:Une fois que vous avez la
CellFormat
vous pouvez maintenant modifier le remplissage et les propriétés de bordure. Une fois ceux-ci sont modifiées, vous devez insérer la nouvelleCellFormat
et puis pointez l'index deCellFormat
à laStyleIndex
sur la cellule. C'est la façon dont la cellule de savoir ce que les styles à appliquer à elle-même.Voir mon édition de code qui devrait faire ce que vous avez besoin.
Le nom de l'outil est gratuit, à partir d'une source de confiance (Microsoft), indispensable et facile à utiliser. Oui, le code généré est "un peu long", mais qui s'en soucie. Il suffit de copier l'ensemble de la classe
generated code
dans votre projet et de le modifier en cas de besoin. Je vous recommande de diviser le code en un certain nombre de#region
blocs de cacher ce qui est ennuyeux pour vous, pour être en mesure de se concentrer sur ce que vous avez besoin de changer ou de copie. Archive également les inchangé code généré. Si plus tard vous faire un petit changement pour votre modèle de feuille de calcul, regardez le code qui change avec votrediff
outilOriginalL'auteur amurra
Beaucoup plus facile de simplement appeler
OriginalL'auteur markokstate
La SpreadsheetDocument est structuré de la collection de WorkbookParts. L'un de ces, le WorkbookStylesPart, contient tous les styles utilisés dans le document. Le WorkbookPart contient votre Feuilles de calcul. Pour appliquer un style à une cellule ou une plage de cellules, vous devez définir la StyleIndex propriété à la correspondante de style dans le WorkbookStylesPart.
Cette réponse devrait vous aider à démarrer:
https://stackoverflow.com/a/11118442/741326
OriginalL'auteur saarp