En un siguiente post explicaré cómo crear un pdf con “la
factura que la empresa emite al trabajador” para ir repercutiendo al trabajador
la parte proporcional del IVA que la empresa se ha deducido por la adquisición
del vehículo. Entonces usaré otra librería que sirve tanto para proyectos para
Java como para Net llamada iTextSharp o iText. Como ya he comentado en el post anterior sólo se
tendrá que repercutir el IVA al trabajador siempre que la empresa haya optado
por deducirse el 100 % del IVA soportado en la compra o renting del vehículo
que cede para el uso del trabajador.
Pues bien primero cuelgo aquí el proyecto ya acabado a la
espera de añadir la opción de crear pdfs que será en el siguiente post.
Como vemos es una aplicación muy sencilla que tiene varias cajas de texto para entrar los datos, un botón para calcular los importes y otro botón para crear un Excel. El código para la creación de un Excel en Java es muy sencillo. Hay que entender los siguientes pasos:
Añadir los “import” necesarios:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
Crear un libro de Excel:
Workbook libro = new HSSFWorkbook();
Añadir una hoja al libro:
Sheet hoja = libro.createSheet("Nombre_Hoja");
Crear una fila:
Row fila1 = hoja.createRow(0);
Se accede a la celda 2 de la fila 1:
Cell filaCell = fila1.getCell(1);
Se añade contenido a la celda:
filaCell.setCellValue("Hola");
Una vez todo guardamos el libro:
OutputStream output = new FileOutputStream(“prueba.xls”);
libro.write(output);
output.close();
En la aplicación se puede ver que el proceso de guardado de la hoja Excel es un poco más complejo ya que he usado un JFileChooser. Se puede crear un método al que se le pase el libro de Excel y que lo guarde.
El código sería el siguiente:
private void CrearExcel(Workbook libro) throws Exception {
JFileChooser fc = null;
FileNameExtensionFilter filter = null;
//Set up the file chooser.
if (fc == null) {
fc = new JFileChooser();
fc.setDialogTitle("Guardar");
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
filter = new FileNameExtensionFilter("Libro de Excel", "xls");
fc.addChoosableFileFilter(filter);
}
filter = new FileNameExtensionFilter("Libro de Excel", "xls");
fc.addChoosableFileFilter(filter);
}
//Show it.
int returnVal = fc.showSaveDialog(this);
int returnVal = fc.showSaveDialog(this);
//Process the results.
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String ext = "";
if (fc.getFileFilter() == filter) {
//Set xls extension only to xls files
String extension = file.getAbsolutePath();
if (!extension.endsWith(".xls")) {
ext = ".xls";
}
}
if (fc.getFileFilter() == filter) {
//Set xls extension only to xls files
String extension = file.getAbsolutePath();
if (!extension.endsWith(".xls")) {
ext = ".xls";
}
}
try (
OutputStream output = new FileOutputStream(file + ext);) {
libro.write(output);
output.close();
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
//Reset the file chooser for the next time it's shown.
fc.setSelectedFile(null);
}
OutputStream output = new FileOutputStream(file + ext);) {
libro.write(output);
output.close();
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
//Reset the file chooser for the next time it's shown.
fc.setSelectedFile(null);
}
Como siempre como el proceso puede ser complejo cuelgo un vídeo donde explico cómo se haría.
Como he dicho en el siguiente post me centraré en crear pdfs con Java y a partir de aquí hablaré sobre bases de datos en Java.
Como he dicho en el siguiente post me centraré en crear pdfs con Java y a partir de aquí hablaré sobre bases de datos en Java.
Hola Raúl,
ResponderEliminarMuchas gracias por este post, me voy a apoyar en él ya que debo crear un excel en una aplicación que estoy programando para mi PFC de mi ingeniería.