1

Apache POI を使用して Excel ファイルを作成しています。すべてのコンテンツを追加したら、 を使用して列のサイズを自動調整しますsheet.autoSizeColumn(i)

十分なスペースが確保できない場合もあります。私は試してみVerdanaましCalibri-Regularた(CalibriからCalibri-Regularに切り替える必要がありました。これは、Windows 7ボックスで突然自動サイズが完全に狂ったためでしたが、Linuxボックスではうまく機能しました。これは私にとって謎です)。これを修正するためにできることはありますか? または、自動サイズ変更後に少しパディングを追加する方法はありますか?

間隔が十分でないサンプル Excel ファイル

編集

Windows dev ボックスで、フォントを Verdana に設定してみましたfont.setFontName("Verdana")。すべてのコンテンツが間違いなく Verdana に変わり、コラムのサイジングも完璧です。Linux 製品ボックスでは、Gagravarr が以下のコメントで参照した Java コードの一部を使用して、Java が認識するフォントのリストを出力しました。試してみMonospacedましたが、間隔は上のスクリーンショットと同じでした。次に試しDingbatsてみましたが、スペースが実際にずれていても、コンテンツはまだ読み取り可能でした(そうあるべきではありませんでした)(下のスクリーンショットを参照)。

ここに画像の説明を入力

4

2 に答える 2

3

また、openjdk と Oracle JDK は同じフォント エンジンを使用していません (SUN/Oracle は、変更が不適切にコード化されたアプリケーションを破壊することを恐れて、レガシー エンジンを保持していました)。openjdk は、四角形の車輪を再発明するのではなく、システムの残りの部分と同じフォント ライブラリを再利用するため、Linux でのフォント関連の機能が向上する可能性は十分にあります。

フォントは法的な悪夢です。Linux フォントのライセンスは、通常、どこにでもコピー、変更、および展開できるほど自由ですが、その逆は当てはまりません (Microsoft は、Windows フォントに依存してアプリを構築する愚か者のために、ベンダー ロックインを作成するように細心の注意を払っていました)。

于 2013-07-11T18:47:40.773 に答える
2

これで問題が解決するかどうかはわかりませんが、「自動サイズ調整後にパディングを少し追加する方法はありますか?」という質問があれば、次の方法で実行できます。

testSheet.autoSizeColumn(ColIndex);
testSheet.setColumnWidth(ColIndex ,testSheet.getColumnWidth(ColIndex)+PaddingWidth);
于 2013-07-10T04:01:39.817 に答える