個々の幅を計算せずに、オープンXML SDK生成スプレッドシートに自動幅を設定できますか?

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

質問

Open XML SDKを使用して、大規模なデータセットからExcelファイルの作成に取り組んでいます。最終的に、ファイルで実際に使用されるすべての列を指定する機能的な列ノードを取得することができました。 Trueに設定できる「BestFit」プロパティがありますが、これは明らかに何もしません。これらの列を自動的に「Best Fit」に設定する方法はありますか。そのため、誰かがこのファイルを開くと、すでに正しい量にサイズがありますか?または、各列の幅を事前に計算し、これをコードに設定することを余儀なくされていますか?

役に立ちましたか?

解決

スペックを理解する方法 このMSDNディスカッション, BestFit 幅はExcelで自動計算されていたことがわかりますが、Excelは次回開いたときに再び計算する必要があることを伝えません。

「Goodol」がその議論で示すように、列は列を表示するときにのみ計算できると思います。コンテンツ、フォントの使用、その他のスタイルパラメーターに依存するためです。幅あなた自身、これは推定にすぎないことに注意してください。また、内容に多くの「広い」文字が含まれている場合は間違っている可能性があります。それとも、Open XML SDKはあなたのためにこれを行いますか?

他のヒント

私は使用しています epplus これを強くお勧めします。それを使ってそれを行う方法を理解するのにしばらく時間がかかりました。ここに私が思いついたものがあります:

// Get your worksheet in "sheet" variable

// Set columns to auto-fit
for (int i = 1; i <= sheet.Dimension.Columns; i++)
{
    sheet.Column(i).AutoFit();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top