Professional Documents
Culture Documents
http://www.csvreader.com/java_csv.php
import com.csvreader.CsvReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JOptionPane;
try {
try {
reader.readHeaders();
libro_ingresado libr;
while (reader.readRecord())
{
libr=new libro_ingresado();
libr.setNombre(reader.get("nombre"));
libr.setAutor(reader.get("autor"));
libr.setEdicion(reader.get("edicion"));
libr.setAnio(reader.get("anio"));
libr.setCodigo(reader.get("codigo"));
libr.setArea(reader.get("area"));
lista_libros.add(libr); // añadimos el objeto al arrayList
reader.close();
////////////////////////////////////////////////////////
DefaultTableModel dtm;
ArrayList libro_recivido=new ArrayList();
if (status == JFileChooser.APPROVE_OPTION) {
libro_recivido=l.leer_archivo_exel(direccion);
Iterator it=libro_recivido.iterator();
try{
while(it.hasNext()){
libro_ingresado lib_ing;
lib_ing=(libro_ingresado) it.next();
datos[0]=lib_ing.getNombre();
datos[1]=lib_ing.getAutor();
datos[2]=lib_ing.getEdicion();
datos[3]=lib_ing.getAnio();
datos[4]=lib_ing.getCodigo();
datos[5]=lib_ing.getArea();
dtm.addRow(datos);
}
} catch(Exception e){
//manejo de error
}
System.out.println("cancele");
//////////////////////////////////////////////////
De ChuWiki
En este ejemplo vamos a crear una hoja Excel desde Java usando la librería POI. Para
ello, lo primero es descargarse la librería POI desde su página de descargas
http://www.apache.org/dyn/closer.cgi/poi/
Una vez descargada y desempaquetada, tendremos una serie de jars que deberemos añadir
a nuestro proyecto Java o a nuestro CLASSPATH. En el momento de escribir este ejemplo,
los jar obtenidos eran
poi-3.0.2-FINAL-20080204.jar
poi-scratchpad-3.0.2-FINAL-20080204.jar
poi-contrib-3.0.2-FINAL-20080204.jar
Estando todo preparado, ya podemos escribir nuestro programa Java. Lo primero de todo,
es crear lo que en Excel se conoce como un libro de trabajo (workbook). Este será nuestro
"Excel".
Un libro de trabajo tiene hojas, así que debermos añadir al menos una hoja
A la hoja debemos añadirle las filas que deseemos. Para nuestro ejemplo, nos bastará con
una. La numeración empieza en cero.
Una vez que tenemos la celda, ya sólo nos resta escribir en ella lo que queramos: una
fórmula, un número, un booleano, un texto, etc. Para ello usaremos los métodos de la celda
HSSFCell. En nuestro caso y por se el más complejo, lo haremos para un String. El método
setCellValue(String) está obsoleto, así que usaremos el método
setCellValue(HSSFRichTextString), que vale para lo mismo pero admite un "texto rico", es
decir, con distintas fuentes.
try {
FileOutputStream elFichero = new FileOutputStream("holamundo.xls");
libro.write(elFichero);
elFichero.close();
} catch (Exception e) {
e.printStackTrace();
}
Y ahora el código completo para este ejemplo de Excel con Java y POI
package com.chuidiang.ejemplos.poi_excel;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* Ejemplo sencillo de cómo crear una hoja Excel con POI
*
* @author chuidiang
*
*/
public class EjemploCrearExcel {
/**
* Crea una hoja Excel y la guarda.
*
* @param args
*/
public static void main(String[] args) {
// Se crea el libro
HSSFWorkbook libro = new HSSFWorkbook();
// Se salva el libro.
try {
FileOutputStream elFichero = new
FileOutputStream("holamundo.xls");
libro.write(elFichero);
elFichero.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Recientemente comence a utilizar Apache POI para crear archivos de Excel desde Java y
me encontre con un problema que podría calificar de trivial pero que me quito algo de
tiempo.
Supongamos que queremos crear una gráfica que muestre los valores anuales desde una
fecha determinada hasta el día de hoy. La solución puede sonar simple: creamos una
gráfica en un archivo y listo, posteriormente escribimos los valores mediante POI en otro
archivo tomando como base el primero. Cuando el número de años entre la fecha actual y
la de inicio cambia (el tiempo pasa) el problema deja de ser trivial.
La principal razón por la que esto sucede es por el simple hecho de que POI no incluye
soporte para gráficas, entonces, no es posible crearla o alterarla de manera directa. La
solución que yo encontre es un poco rebuscada pero funciona.
2. Crear un rango nombrado que cuente el numero de valores que pueden cubrir
nuestros datos.
=OFFSET(Hoja!$B$1, 1, 0, COUNTA(Hoja!$B:$B) - 1, 1)
6. Ahora pueden agregarse datos en la fila por debajo de la ultima con datos y estos
se agregaran a la gráfica.
Una API de Jakarta destinada al manejo de archivos Excels. Muy sencilla de utilizar, con
mucha potencia, permite crear un nuevo archivo, leer uno ya existente, no solo crear hojas
de calculo con datos sino con formulas, formato, graficos en ella.
Vean la guia rapida para ver lo sencillo que es utilizar este libreria.
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.*;
import javax.swing.event.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.record.*;
import org.apache.poi.hssf.model.*;
import org.apache.poi.hssf.util.*;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
public EjemploPOI() {
setTitle("Ejemplo");
panel.add(getPanelBotones(),BorderLayout.NORTH);
panel.add(getPanelTabla(),BorderLayout.CENTER);
setContentPane(panel);
setVisible(true);
pack();
}
/*
* Construye el panel con la tabla de datos
*/
private JScrollPane getPanelTabla() {
String[] columnas = { "Mes","Cantidad" };
Object[][] datos = {
{ "Enero","10" },
{ "Febrero","23" },
{ "Marzo","14" },
{ "Abril","26" }
};
return scrol;
}
/*
* Construye el panel con el boton
*/
private JPanel getPanelBotones() {
panel.add(btnExportar);
return panel;
}
//Creamos el libro
HSSFWorkbook wb = new HSSFWorkbook();
}
}
try {
"Completo",JOptionPane.INFORMATION_MESSAGE);
} catch(IOException e1) {
System.err.println("Se produjo un error");
System.err.println(e1.getMessage());
}
}
Ejemplo Jakarta POI
sgoliver Comments Off
En esta página se muestra un programa java completo como ejemplo de uso de la librería
Jakarta POI. Puedes encontrar mucha más información sobre esta librería en el artículo
original que contiene este ejemplo.
1 import java.io.FileInputStream;
2 import java.io.FileOutputStream;
import java.io.IOException;
3
import java.util.Date;
4
5
import org.apache.poi.hssf.usermodel.HSSFCell;
6
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
7
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
8
import org.apache.poi.hssf.usermodel.HSSFRow;
9
import org.apache.poi.hssf.usermodel.HSSFSheet;
10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
11 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
12
14 {
15 public static void main(String[] args)
16 {
escribirExcel();
17
18
leerExcel();
19
20
System.out.println("Ejemplo Finalizado.");
21
}
22
23
public static void escribirExcel()
24
{
25 try
26 {
29
51 FileOutputStream fileOut =
52 new FileOutputStream("ejemplo.xls");
53
54 wb.write(fileOut);
55 fileOut.close();
}
56
catch(IOException e)
57
{
58
System.out.println("Error al escribir el fichero.");
59
}
60
}
61
62 public static void leerExcel()
63 {
64 try
65 {
78
81 {
//Se obtiene la celda i-esima
82
HSSFCell cell = row.getCell((short)i);
83
84
//Si la celda leida no está vacía
85
if (cell != null)
86
{
87
//Se imprime en pantalla la celda según su tipo
88 switch(cell.getCellType())
89 {
90 case HSSFCell.CELL_TYPE_NUMERIC:
91 System.out.println("Número: " +
cell.getNumericCellValue());
92
break;
93 case HSSFCell.CELL_TYPE_STRING:
94 System.out.println("String: " +
cell.getStringCellValue());
95
break;
96
case HSSFCell.CELL_TYPE_BOOLEAN:
97
System.out.println("Boolean: " +
98 cell.getBooleanCellValue());
break;
99
default:
10
0 System.out.println("Default: " +
cell.getDateCellValue());
10
break;
1
}
10
2 }
10 }
3 }
10 catch(IOException ex)
4
{
10
System.out.println("Error al leer el fichero.");
5
}
10
6 }
}
10
7
10
8
10
9
11
0
11
1
11
2
11
3
11
4
11
5
11
6
11
7
11
8
Cómo generar Hojas de Excel en una aplicación JAVA usando Apache POI
octubre 22, 2007 apiconz Deja un comentario Ir a los comentarios
El presente tutorial espero les sirva como referencia para el uso de la librería POI. Si tienen
alguna observación y/o corrección deseo que me la hagan llegar.
Es importante tener en cuenta que cada archivo de Excel representa un LIBRO, dentro de
cada libro tenemos HOJAS, dentro de cada HOJA tenemos FILAS, y, finalmente, en cada
FILA tenemos CELDAS. Hago mención de esto porque nos ayudará a ver cómo se
organiza la información en el archivo.
// Creo la hoja
HSSFSheet hoja1 = objWB.createSheet("hoja 1");
// creo la fila.
HSSFRow fila = hoja1.createRow((short)1);
Notemos que el valor que se envía al método encargado de crear las filas es de tipo short, el
mismo que indica el número correspondiente a la fila que hemos de trabajar. El índice de
las filas empieza en “0″, aunque ello no nos impide trabajar directamente con otras filas.
La segunda, es la clase que, finalmente, nos ayudará a aplicar el estilo a la celda. Podemos
acomodar y alinear el texto mediante los métodos setWrapText, setAlignment y
setVerticalAlignment; aplicar la fuente trabajada, con el método setFont; configurar los
bordes mediante los métodos: setBorderBottom, setBorderLeft, setBorderRight,
setBorderTop, para el tipo; y, setBottomBorderColor, setLeftBorderColor,
setRightBorderColor, setTopBorderColor para establecer el color de los bordes; y,
establecer el sombreado de las celdas mediante los métodos setFillForegroundColor,
setFillBackgroundColor y setFillPattern .
Aunque, es un poco ‘engorroso’ andar trabajando estos estilos, celda por celda, de esta
forma, lo mejor es encapsular todo este proceso en métodos que nos permitan ahorrar líneas
de código, preestableciendo, los estilos que se emplearán.
Según la versión de la librería que se esté empleando, podremos contar o no, con algunas
constantes para la configuración del color y el establecimiento de los sombreados. Por ello
adjunto información respecto a los colores en el anexo A y respecto a los sombreados en el
Anexo B, al final del documento.
// Creo la hoja
HSSFSheet hoja1 = objWB.createSheet("hoja 1");
El objetivo de este tutorial no es mostrar todas las opciones disponibles, sino solo presentar
un pequeño caso práctico sobre el uso de HSSF (POI) para la generación de archivos en
formato Excel.
Deseo mencionar que para la creación del presente tutorial me basé en la documentación de
la página de Apache POI así como también al contenido de la página JAVA DRIVE (en
japonés).