Puis-je configurer automatiquement la largeur sur une feuille de calcul généré SDK Open XML sans calculer les largeurs individuelles?

StackOverflow https://stackoverflow.com/questions/2760168

Question

Je travaille sur la création d'un fichier Excel à partir d'un grand nombre de données en utilisant l'Open XML SDK. Je l'ai finalement réussi à obtenir un nœud Colonnes fonctionnel, qui spécifie toutes les colonnes qui seront effectivement utilisées dans le fichier. Il y a une propriété « BestFit » qui peut être réglé sur vrai, mais cela ne semble rien faire. Est-il possible de régler automatiquement ces colonnes à « meilleur ajustement », de sorte que lorsque quelqu'un ouvre ce fichier, ils sont déjà dimensionnés pour le montant exact? Ou suis-je obligé de calculer la largeur de chaque colonne doit être à l'avance, et le définir dans le code?

Était-ce utile?

La solution

La façon dont je comprends la spécification et cette discussion MSDN , BestFit vous indique la largeur est automatiquement calculée dans Excel, mais il ne dit pas Excel qu'il devrait calculer à nouveau la prochaine fois qu'il est ouvert.

« goodol » indique dans cette discussion, je pense que la largeur ne peut être calculé lorsque vous affichez la colonne, car il dépend du contenu, la police utilisée, d'autres paramètres de style ... Donc, même si vous voulez pré -calculate la largeur vous-même, sachez que cela est seulement une estimation, et il peut se tromper si le contenu contiennent beaucoup de « larges » caractères. Ou le SDK Open XML pour vous faire?

Autres conseils

J'utilise EPPlus que je recommande fortement. Il m'a fallu un certain temps pour comprendre comment le faire en utilisant cela, voici ce que je suis venu avec:

// Get your worksheet in "sheet" variable

// Set columns to auto-fit
for (int i = 1; i <= sheet.Dimension.Columns; i++)
{
    sheet.Column(i).AutoFit();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top