5

JavaベースのWebアプリケーションでDisplayタグライブラリを使用しています。

表示タグライブラリを使用してリストを表示するだけでなく、データをExcelシートにエクスポートするためにも使用しています。これは正常に機能しています。

問題は、データがExcelシートの列にラップされていることです。

完全なデータを表示するには、セルをクリックしてセルを展開する必要があります。

このデータのラップアップを防ぐ方法はありますか?Excelのシートセルは、その中のデータの幅に合わせて調整できますか?

4

3 に答える 3

3

はい、HSSFでPOIを使用してドキュメントを作成している場合、セルを自動フォーマットできます。そうでない場合は、既存のドキュメントを開いて、必要な列のサイズを自動変更するだけで使用することをお勧めします。

すべてのセルを作成した後、ドキュメントを保存する前に、列のサイズを変更するこのメソッドを呼び出すだけです。たとえば、次のようなシートのすべての列に対してそれを行いました。

//
// Create an instance of workbook and sheet
//
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
sheet.setAutobreaks(true);
 .
 .//code in which you create actual rows and cells HERE  
 .
//auto formating to fit the page
for(int i=0; i<repModel.getReportHeaders().length;i++){
sheet.autoSizeColumn((short) (i+1));     
}

poi を起動するのに最適なリンクは次のとおりです: Busy Developers' Guide to HSSF and XSSF Features

于 2012-06-01T18:06:58.457 に答える
2

このブログ エントリでは、DisplayTag の Excel エクスポート メカニズムについて説明し、Excel エクスポートを変更してカスタム HSSF テーブル ライターに結び付ける方法を示しているようです。

要約する:

  • 実装 org.displaytag.export.BinaryExportView を記述します (または DisplayTag の DefaultHssfExportView を拡張します)
  • 上記の実装は、DisplayTag の HssfTableWriter を拡張する新しいクラスに委譲する必要があります (または、DisplayTag からオリジナルをコピーして新しいソースに貼り付けます。これは、そこにある多数のアクセサー メソッドが不必要にプライベートであるように聞こえるためです)。
  • HssfTableWriter の特定のメソッドをオーバーライド (または変更) します (writeBottomBanner() と呼ばれていると思います)
  • 次の行で displaytag.properties ファイルを更新します: export.excel.class=xyzMyExcelExportView

そうは言っても、DisplayTag 1.2 のソース コードを見ていると、自動サイズ調整のために列が既に拡張されているようです (http://displaytag.sourceforge.net/1.2/displaytag-export-poi/xref/org/ displaytag/render/HssfTableWriter.html#347)。DisplayTag 1.2 を使用していますか、それとも以前のバージョンを使用していますか? 以前のバージョンを使用している場合は、1.2 にアップグレードすると問題が解決する可能性があります。それとも、データが「まとめられている」という意味を誤解していますか?

于 2012-06-01T18:50:23.960 に答える
1

HSSF Poi を使用して Excel ドキュメントを作成している場合は、列幅を調整できるはずです。

http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html#setColumnWidth%28int,%20int%29

于 2012-05-29T08:13:08.750 に答える