1. Importación y exportación de Excel
1. Exportar a Excel a través de la plantilla de exportación local (adecuada para exportar encabezados más complicados)
Esta es la plantilla que puse localmente.
El siguiente es el método que exporté
Pongo los datos consultados en una matriz bidimensional y los exporto leyendo los datos de la matriz bidimensional
Los datos después de exportar son
2. Exportar datos a través de Excel a través de POI
Vaya directamente al código, debe crear una clase de entidad de usuario usted mismo
@Override
public void downloadFile (solicitud HttpServletRequest, respuesta HttpServletResponse) { try { User users = new User (); users.setId ("1222"); users.setUsername ("张三"); users.setPhone ("1760767162"); users.setAddress ("深圳 塘 朗"); users.setCardno ("4325241995086246"); users.setTitel ("java 删 库 到 跑路"); users.setState (""); // 获取 数据 List <User> list = new ArrayList <User> (); list.add (usuarios);
// título de Excel
String [] title = {"nombre del estudiante", "número de teléfono móvil", "número de identificación", "dirección", "nombre del curso", "estado de pago del curso", "id"};
// nombre de archivo de Excel
String fileName = "agent" + users.getUsername () + "tabla de estadísticas de información de inscripción" + System.currentTimeMillis () + ".xls";
// CellRangeAddress callRangeAddress = new
// CellRangeAddress (0, 0, 0,6); // fila inicial, fila final, columna inicial, columna final
// hoja 名
String sheetName = "招生 信息 统计表 22";
String [] [] content = new String [list.size ()] [title.length];
Estado de cadena = "";
for (int i = 0; i <list.size (); i ++) { // content [i] = new String [title.length]; Usuario usuario = list.get (i); if (null! = user.getState ()) { state = "已 付费"; } else { estado = "未 付费"; } / * * Fecha fecha = obj.getReportDate (); contenido [i] [0] = * sDateFormat.format (fecha);
* /
content [i] [0] = user.getUsername ();
content [i] [1] = user.getPhone () + "";
content [i] [2] = user.getCardno () + "";
contenido [i] [3] = usuario.getAddress () + "";
contenido [i] [4] = usuario.getTitel ();
contenido [i] [5] = estado;
contenido [i] [6] = usuario .getId ();
}
// El contenido de la celda fusionada
String mergeCell = "Agent" + users.getUsername () + "Número total de estudiantes inscritos:" + list.size () + "people";
Integer cellNum = 5 ;// Fusionar 6 columnas de celdas
// Crear
HSSFWorkbook // HSSFWorkbook wb1 = new HSSFWorkbook ();
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook (sheetName, título, contenido, nulo, mergeCell, cellNum);
// Archivo errFile = new File (CoinConfig.RESOURCE_BASIC_PATH + "/"
// + fileName);
// 响应 到 客户 端
try { this.setResponseHeader (respuesta, fileName); OutputStream os = response.getOutputStream (); // OutputStream os = new FileOutputStream (errFile); wb.write (os); os.flush (); os.close (); } captura (Excepción e) { e.printStackTrace (); }
} catch (Exception e) { log.error ("Descarga fallida", e); } }
Método de herramienta
public class ExcelUtil {
/ **
* Exportar Excel
* @param sheetName nombre de la hoja
* @param title title
* @param values content
* @param wb Objeto HSSFWorkbook
* @return
* /
public static HSSFWorkbook getHSSFWorkbook (String sheetName, String [] title, String [ ] [] valores, HSSFWorkbook wb, String mergeCell, Integer cellNum) {
// El primer paso es crear un HSSFWorkbook, correspondiente a un archivo de Excel
if (wb == null) { wb = new HSSFWorkbook (); }
// El segundo paso es agregar una hoja al libro de trabajo, correspondiente a la hoja
HSSFSheet sheet en el archivo Excel = wb.createSheet (sheetName);
// El tercer paso es agregar la fila 0 del encabezado a la hoja. Tenga en cuenta que la versión anterior de poi tiene un límite en el número de filas y columnas de Excel.
HSSFRow row = sheet.createRow (0);
// El cuarto paso es crear una celda y establecer el encabezado de valor. Establecer el encabezado para que esté centrado.
HSSFCellStyle style = wb.createCellStyle ();
style.setAlignment (HSSFCellStyle.ALIGN_CENTER); // Crear un formato centrado
// Declarar el objeto de columna
HSSFCell cell = null;
if (StringUtils.isNotEmpty (mergeCell)) { // Combinar celda CellRangeAddress callRangeAddress = new CellRangeAddress (0,0,0, cellNum); // Fila de inicio, fila final, inicio Inicio columna, final de la columna sheet.addMergedRegion (callRangeAddress); celda = fila.createCell (0); celda.setCellValue (mergeCell); celda.setCellStyle (estilo); fila = hoja.createRow (1); // HSSFCell celda = nulo; // Crear título para (int i = 0; i <title.length; i ++) { celda = fila.createCell (i); celda.setCellValue (título [i]);
cell.setCellStyle (estilo);
}
// Crear contenido
para (int i = 0; i <values.length; i ++) { row = sheet.createRow (i + 2); for (int j = 0; j <valores [i] .length; j ++) { // Asignar el contenido al objeto de columna correspondiente en el orden row.createCell (j) .setCellValue (valores [i] [j]); } } } else { // HSSFCell cell = null; // Crear título para (int i = 0; i <title.length; i ++) { celda = fila.createCell (i); celda.setCellValue (título [i]); celda.setCellStyle (estilo); }
// Crear contenido
para (int i = 0; i <values.length; i ++) { row = sheet.createRow (i + 1); for (int j = 0; j <valores [i] .length; j ++) { // Asignar el contenido a los objetos de columna correspondientes en el orden row.createCell (j) .setCellValue (valores [i] [j]); } } } return wb; } } 3. Puede exportar configurando la plantilla html