Estoy trabajando con apache poi, leo algunos archivos xlsx, los proceso y luego los exporto en formato xlsx también. Pero ahora tengo el requisito de que el formato de exportación sea XLS (esto es para admitir dispositivos antiguos). ¿Hay una manera fácil de convertir el archivo xlsx generado por código a xls?

Todo el proceso se realiza con la implementación de XSSF.

Gracias de antemano.

1
Rcordoval 6 mar. 2017 a las 06:38

2 respuestas

La mejor respuesta

Estoy de acuerdo con la respuesta central, pero quiero agregar algunas líneas de código.

Dijiste que estás usando la implementación XSSF.

Entonces, para el libro que está guardando, haga los siguientes cambios: cambiar XSSFWorkbook x = new XSSFWorkbook(); a Workbook x = new HSSFWorkbook(); donde se importa el libro desde org.apache.poi.ss.usermodel.Workbook;

De manera similar, cambie la instanciación de XSSFRow de

XSSFRow r = newXSSF();

A Row r = new HSSFRow(); e importar la fila desde org.apache.poi.ss.usermodel.Row;

De la misma manera, cambie la creación de instancias de Cell al paquete ss.usermodel.

Y finalmente guarde su libro de trabajo HSSF con la extensión .xls.

2
The Guest 6 mar. 2017 a las 22:22

Deberá cambiar a la implementación "ss" que permite trabajar de forma transparente con HSSF (= XLS) y XSSF (= XSLX), consulte http://poi.apache.org/spreadsheet/converting.html para obtener algunos detalles del modificador HSSF -> SS original, que también debería arrojar algo de luz sobre su compatibilidad con otro camino alrededor.

Entonces, solo los dos constructores para HSSFWorkbook / XSSFWorkbook son necesarios para decidir cuál de los dos formatos desea producir.

2
centic 6 mar. 2017 a las 11:27