5

Axlsx を使用すると、一部のセルがテキストを折り返すように設定され、うまく機能します。私が直面している問題は、セルの自動幅がどのように計算されるように見えるかです。何が起こっているかは、最初は次のようにデータが入ってくるようです:

cell line1 cell line2 cell line3 cell line4 cell line5

幅をそれほど大きく設定するために使用するAxlsx。しかし、折り返しテキストが入ってきて、セルを次のように正しく設定します。

cell line1
cell line2
cell line3
cell line4
cell line5

高さは 5 つすべての値を表示するように正しく設定されますが、行の幅は依然として巨大です。Excel内でセルをダブルクリックして幅を自動サイズ調整するかのように、Axlsxにセルのサイズを自動調整させる方法があるかどうかは誰にもわかりませんか? Axlsx を介してスプレッドシートに追加するときに Excel の列幅を正しく設定することはうまくいかないようですが、効果を得ることができませんでした:widths

私もcolumn_widthsで遊んでいますsheet.column_widths *30。このプロパティですべての列の幅を強制的に同じにする方法があるかどうかは誰にもわかりませんか? 配列を受け入れないようです-コンマで区切られた整数/浮動小数点数/修正番号のみで、* 30 を実行すると、最初の列が 30 の幅に設定されるだけです。実際には、何列になるかは事前にわかりません(動的データ)を使用しているので、すべての列を特定の幅に自動サイズ変更するように設定できるようにしたいと思います。

4

2 に答える 2

12

colum_widths関数を確認してください。渡された引数を繰り返し処理し、渡された値にその多く (渡された引数の数) の列幅を設定します。

したがって、X列幅をYに設定する場合は[Y]*x、引数として配列を column_widths に渡し、spalt(*)operator を使用してこの配列を引数リストに変換する必要があります。

あなたの場合、列の数は動的になるためsheet.column_info.count、シート内の列の数を取得するために使用できます。すべての列の幅を 30 に設定したい場合は、データセットを追加した後に行う必要があります。 - を使用した幅 sheet.column_widths *([30]*sheet.column_info.count)

于 2014-12-25T10:25:48.677 に答える