Cómo usar Java para exportar Excel
@SuppressWarnings({?" unchecked"? })
public?class?ExcelOperate?
/**
?*?@author?liuwu
?*?Este es un método general que utiliza el mecanismo de reflexión JAVA,
? Este es un método general que utiliza el mecanismo de reflexión JAVA,
?*Puede enviar datos que cumplan condiciones específicas en la colección JAVA al dispositivo IO especificado en forma de un archivo Excel
?*?@param?title?Nombre del título del formulario
?*?@param?headers?Matriz de nombres de columnas de atributos de tabla
?*?@param ?conjunto de datos? Una colección de datos que se mostrarán, qué objetos de clases de estilo javabean deben colocarse.
?* Los tipos de datos de atributos javabean admitidos por este método incluyen tipos de datos básicos de Java y Cadena, Fecha, byte[] (Imagen convertida a código de bytes)
El objeto ?*?@param?out?Stream está asociado con el dispositivo de salida y puede exportar el documento EXCEL a un archivo o red local
? *?Si hay datos de tiempo, configure el formato de salida.
El valor predeterminado es "yyyy-MM-dd"
?*@throws?IOException?@throws?IOException?
?*/
public?Libro de trabajo de declaración
HSSFWorkbook libro de trabajo = new HSSFWorkbook();
//Generar tabla
HSSFSheet?sheet?=?workbook.createSheet(title);
///?Establezca el ancho de columna predeterminado de la tabla en 15 bytes
sheet.setDefaultColumnWidth((short)?20);
///?Generar estilo p> p>
HSSFCellStyle?style?=?workbook.createCellStyle();
//setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment( HSSFCellStyle.ALIGN_CENTER
//Generar fuente
);HSSFFont?font?=?workbook.createFont();
font.setColor(HSSFColor.VIOLET.index);
font.setFontHeightInPoints( (corto)?12) ;
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
///?Aplicar fuente al estilo actual
style.setFont(font);
///?Generar y establecer otro estilo
HSSFCellStyle?style2?=?workbook.createCellStyle();
style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index); p> p>
//?index);
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); p> style2.p> style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.createCellStyle.BORDER_THIN);
style2.setAlignment(HSSFCellStyle.ALIGN_CENTE
R);
style2.setVerticalAlignment( HSSFCellStyle.VERTICAL_CENTER);
//Generar otra fuente
HSSFFont?font2?=?workbook.createFont () ;
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
///Aplicar fuente al estilo actual
style2.setFont(font2);
///?Generar fila de encabezado
HSSFRow?{
HSSFCell?cell?=?row.createCell(i);
cell.setCellStyle( estilo);
HSSFRichTextString?text?=?new?HSSFRichTextString( encabezados[i]);
cell.setCellValue(texto);
} p>
///?Recorre los datos de la colección para generar filas de datos
Iteratorlt;? gt;?it?=?dataset.iterator();
int ?{
índice ;
fila?=?sheet.createRow(index);
Objeto?t?=?it.next();
p >//Utilice la reflexión para llamar dinámicamente al método getXxx() para obtener valores de atributos según el orden de los atributos javabean
Field[]?fields?=?t.getClass() .getDeclaredFields();
para?(short?i?=?0;?i?lt;?fields.length;?i )?{
HSSFCell?cell?= ?row.createCell( i);
cell.setCellStyle(style2);
Campo?field?=?fields[i];
Cadena?fieldName ? =?field. getName();
String?getMethodName?=?" get"
?fieldName.substring(0,?1).toUpperCase()
?fieldName .substring(1); //Nota?Entity get?Set No cambie el nombre usted mismo, de lo contrario se producirán problemas de reflexión
¿intenta?{
¿Clase? tCls?=?t.getClass ();
¿Método?getMethod?=?tCls.getMethod(getMethodName, new? Class[]? {});
¿Objeto?valor? =?getMethod.invoke(t , new?Object[]? {});
¿Object?value?=?getMethod.invoke(t, new?Object[]? {});
¿Objeto?{ });
HSSFRichTextString?rich
String?=?new?HSSFRichTextString(value.toString());
HSSFFont?font3?=?workbook.createFont()
font3.setColor(HSSFColor.BLUE.index); );
richString.applyFont(font3);
cell.setCellValue(richString);
}?{
e.printStackTrace; ();
e=null;
}?catch ?(NoSuchMethodException?e)?{
e.printStackTrace();
e=null;
}?{
e.printStackTrace();
e=null;
e.printStackTrace();
e=null
}?{
e.printStackTrace(); >
e=null;
}?¿Finalmente?Borrar recursos
}
}
}
intentar?{
e.printStackTrace();
e=null
}
}
<; p> }}