OpenXML: Auto Taille de la largeur de la colonne dans Excel
J'ai écrit un code pour générer un fichier Excel à l'aide d'OpenXML.
Ci-dessous est le code qui génère les Colonnes dans Excel.
Worksheet worksheet = new Worksheet();
Columns columns = new Columns();
int numCols = dt1.Columns.Count;
for (int col = 0; col < numCols; col++)
{
Column c = CreateColumnData((UInt32)col + 1, (UInt32)numCols + 1, 20.42578125D);
columns.Append(c);
}
worksheet.Append(columns);
Aussi, j'ai essayé en dessous de la ligne pour créer des colonnes.
Column c = new Column
{
Min = (UInt32Value)1U,
Max = (UInt32Value)1U,
Width = 25.42578125D,
BestFit = true,
CustomWidth = true
};
J'ai pensé à l'aide de BestFit
il devrait fonctionner. Mais il ne définit pas de réglage de taille automatique.
OriginalL'auteur Mittal Patel | 2013-08-16
Vous devez vous connecter pour publier un commentaire.
La BestFit propriété est une propriété d'informations (peut-être pour l'optimisation par Excel). Vous devez toujours fournir la Largeur de la Colonne. Cela signifie que vous avez fait à calculer la largeur de la colonne en fonction du contenu de la cellule. SDK Open XML n'est pas fait automatiquement pour vous, il est donc préférable que vous utilisez une bibliothèque tierce pour cela.
OriginalL'auteur Vincent Tan
Vous devez calculer votre auto malheureusement
C'est ce que j'ai. Il travaille pour mes données tabulaires avec un certain code supplémentaire pour prendre soin de quelques styles que j'ai fixés. Son n'est pas parfait, mais qui fonctionne pour ce que j'en ai besoin pour.
attendez une minute, je vois ce que tu veux dire, vous avez juste écrire votre propre implémentation de réglage de toutes les valeurs de cellule, puis continuer avec réglage de la largeur des colonnes, mon mauvais.
le charwidth pour le variable dans AutoSize() n'est pas utilisé?
les variables
width
,pixels
etcharWidth
doit probablement avoir été les fonctions de la place. Elles sont le miroir de l'3 formules répertoriés sur MSDN.OriginalL'auteur Hath
Je n'ai pas eu le temps de regarder en elle, mais au lieu de simplement laisser un commentaire et un lien, j'ai pensé partager un commentaire de quelqu'un qui a apparemment fait des recherches sur ce.
J'ai personnellement eu des problèmes à obtenir l'officiel des formules pour s'adapter à la réalité. I. e. Chaînes courtes ai trop petites cellules, des chaînes plus longues ai trop grandes cellules et la plupart de tous, la valeur présentée dans Excel a été proportionnellement plus petite que la valeur que j'ai inséré dans le
DocumentFormat.OpenXml.Spreadsheet.Column
'sWidth
-propriété. Ma solution rapide était juste pour avoir une largeur minimale.De toute façon, voici le commentaire:
OriginalL'auteur
Ici la formule possible
largeur = Tronque([{Nombre de Caractères} * {Maximum de la Largeur des Chiffres} + {espacement de 5 pixels}] /{Maximum de la Largeur des Chiffres} * 256) /256
OriginalL'auteur Cyclion