2012-05-21 9 views
5

Estamos utilizando el Display tag library en nuestra aplicación web basada en Java.¿Cómo evitar que los datos exportados se envuelvan utilizando la etiqueta de visualización?

Además de usar solo la biblioteca de etiquetas de visualización para mostrar las listas, también lo estamos usando para exportar datos a hojas de Excel que funciona bien.

El problema es que los datos son envueltos en las columnas de la hoja de Excel.

Necesito hacer clic en la celda para expandir la celda y ver los datos completos.

¿Hay alguna manera de evitar este ajuste de datos? ¿Pueden las celdas de Excel ajustarse al ancho de los datos en él?

+0

¿Puedo verificar con usted, Ashish, que hacer CTRL + A y luego hacer doble clic en la línea vertical entre dos encabezados de columna para cambiar el tamaño de la columna según los datos de texto presentes en la hoja de trabajo es una solución inaceptable para sus usuarios? –

+0

@Rob No, de hecho esto es lo que estamos haciendo actualmente. Pero los usuarios ya no quieren hacer esto. :( – ashishjmeshram

+0

Ashish, es útil saber que esa solución describe perfectamente lo que se debe hacer durante/antes de la exportación. Eché un vistazo a Display Tag, compilé e implementé las muestras en Tomcat 6.0.14 en la página Exportar de la muestra no reproduzco el problema. Las celdas en Excel se dimensionaron correctamente. ¿Puede proporcionar algunos datos de muestra que puedan replicar este problema? –

Respuesta

2

Sí células pueden autoformated, si está utilizando POI con él HSSF para crear tu documento. Si no, le sugiero que lo use solo abra un documento existente y cambie automáticamente el tamaño de las columnas que necesite.

Después de creó todas sus celdas, pero antes de guardar el documento solo debe llamar a este método para cambiar el tamaño de la columna. por ejemplo, lo hice por todos mis columnas en una hoja de esa manera:

// 
// 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));  
} 

Y aquí es un mejor enlace a utilizar para poner en marcha con poi: Busy Developers' Guide to HSSF and XSSF Features

2

Parece que this blog entry discute DisplayTag de excel exportar mecanismo y le muestra cómo modificar la exportación de Excel para vincular a un escritor de tabla HSSF personalizado.

En resumen:

  • Escribir una org.displaytag.export.BinaryExportView aplicación (o se extienden DefaultHssfExportView de DisplayTag)
  • Dicha aplicación debe delegar a una nueva clase que se extiende HssfTableWriter de DisplayTag (o copiar/pegar el original de DisplayTag en una nueva fuente, ya que suena como un montón de métodos de acceso en allí son innecesariamente privados)
  • anula (o cambia) el método particular en HssfTableWriter (creo que se llama writeBottomBanner())
  • actualización de su archivo displaytag.properties con esta línea: export.excel.class = xyzMyExcelExportView

Dicho esto, estoy buscando en el código fuente en DisplayTag 1.2 y parece estar ya la expansión de la columna para el auto-tamaño (http://displaytag.sourceforge.net/1.2/displaytag-export-poi/xref/org/displaytag/render/HssfTableWriter.html#347). ¿Estás usando DisplayTag 1.2 o estás usando una versión anterior? Si está utilizando una versión anterior, quizás la actualización a 1.2 resuelva su problema. ¿O estoy malinterpretando lo que quería decir con los datos "envueltos"?

+0

Gracias por la respuesta. Intentaré esto y mira si funciona – ashishjmeshram

Cuestiones relacionadas