La salida del informe es un contenido que a menudo está involucrado en el desarrollo de aplicaciones Java, y los informes generales a menudo carecen de universalidad y no son convenientes para que los usuarios editen personalizados. Debido a sus características multiplataforma, los programas Java no pueden manipular directamente Excel. Por lo tanto, este artículo analiza el programa Java de línea de visión POI para la lectura e importación de Excel.
Estructura del proyecto:
java_poi_excel
Archivos de Excel utilizados:
XLS
Xlmain .java clase
// Esta clase tiene un método principal, que es principalmente responsable de ejecutar el programa. Al mismo tiempo, esta clase también incluye Reading Excel con POI (Versión 2003) import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstream; import java.util.arrayList; import java.util.list; import java.util.list; import; org.apache.poi.hssf.usermodel.hssfcell; import org.apache.poi.hssf.usermodel.hssfrow; import org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.usermodel.hssfworkbook; /** * * @author Hongten </br> * * */public class xlSmain {public static void main (string [] args) lanza ioexception {xlsmain xlsMain = new xlSmain (); Xlsdto xls = nulo; List <xlsdto> list = xlsMain.readxls (); intente {xlsdto2excel.xlsdto2excel (list); } catch (Exception e) {E.PrintStackTrace (); } for (int i = 0; i <list.size (); i ++) {xls = (xlsdto) list.get (i); System.out.println (xls.getxh () + "" + xls.getxm () + "" + xls.getyxsmc () + "" + xls.getkcm () + "" + xls.getkcm () + "" + xls.getcj ()); }}/*** Lea el contenido del archivo XLS** @@return list <xlsdto> object* @throws ioexception* input/output (I/o) Exception*/private list <xlsdto> readXls () lanza ioexception {inputStream IS = nueva FileInputSeam ("PLXKXXXMB.XLS"); HSSFWorkBook HSSFWorkBook = nuevo HSSFWorkBook (is); Xlsdto xlsdto = null; List <xlsdto> list = new ArrayList <xlsdto> (); // hoja de bucle para (int numSheet = 0; numSheet <hssfworkbook.getNumberOfSheets (); numSheet ++) {hssfsheet hssfsheet = hssfworkbook.getSheetat (numSheet); if (hssfsheet == null) {continuar; } // bucle fila fila para (int rownum = 1; Rownum <= hssfsheet.getLastrownum (); Rownum ++) {HSSFROW HSSFROW = HSSFSheet.getrow (ROWNUM); if (hssfrow == null) {continuar; } xlsdto = new xlsdto (); // celda de columna de bucle // 0 Número de estudiante 1 Nombre 2 Colegio 3 Nombre del curso 4 puntaje // para (int cellnum = 0; cellnum <= 4; cellNum ++) {hssfcell xh = hssfrow.getcell (0); if (xh == null) {continuar; } xlsdto.setxh (getValue (xh)); Hssfcell xm = hssfrow.getCell (1); if (xm == null) {continuar; } xlsdto.setxm (getValue (xm)); Hssfcell yxsmc = hssfrow.getCell (2); if (yxsmc == null) {continuar; } xlsdto.setyxsmc (getValue (yxsmc)); HSSFCELL KCM = HSSFROW.GETCELL (3); if (kcm == null) {continuar; } xlsdto.setkcm (getValue (kcm)); HSSFCELL CJ = HSSFROW.GETCELL (4); if (cj == null) {continuar; } xlsdto.setcj (float.parsefloat (getValue (cj))); list.add (xlsdto); }} lista de retorno; } / ** * Obtenga el valor en la tabla de Excel * * @param hssfcell * cada cuadrícula en Excel * @return valores en cada cuadrícula en Excel * / @SupplesSwarnings ("static-access") privado string getValue (hssfccell hssfcell) {if (hssfcell.getgelTypePe () == hssfcell.cell_type_boolean) {// Devuelve el valor del tipo booleano return string.valueOf (hssfcell.getBooleCellValue ()); } else if (hssfcell.getCellType () == hssfcell.cell_type_numeric) {// devuelve el valor del tipo numérico return string.valueOf (hssfcell.getNumericCellValue ()); } else {// devuelve el valor del tipo de cadena return string.ValueOf (hssfcell.getStringCellValue ()); }}}Xlsdto2excel.java clase
// Esta clase es el principal responsable de insertar datos en Excel (versión 2003) import java.io.fileOutputStream; import java.io.outputstream; import java.util.list; importar org.apache.poi.hssf.usermodel.hssfcell; import org.apache.poi.hssf.usermodel.hssfrichTextString; import org.apache.poi.hssf.usermodel.hssfsheet; import og.apache.poi.poisf.usmodel.. clase pública xlsdto2excel { / ** * * @param xls * Un objeto de la clase de entidad xlsdto * @throws excepción * lanza una excepción durante la importación de Excel * / public static void xlsdto2excel (list <Xlsdto> xls) Excepción {// Obtener el número total de columnas int countcolumnnum = xls.s.size (););); // Crear documento de Excel hssfworkbook hwb = new hssfworkbook (); Xlsdto xlsdto = null; // La hoja corresponde a una página de trabajo hssfsheet hoja = hwb.createSheet ("PLDRXKXXMB"); Hssfrow firstrow = sheet.createrow (0); // Inicie la línea con el subíndice 0 hssfcell [] firstcell = new HSSFCell [CountColumnnum]; Cadena [] nombres = new String [CountColumnnum]; nombres [0] = "número de estudiante"; nombres [1] = "nombre"; nombres [2] = "College"; nombres [3] = "nombre del curso"; nombres [4] = "puntaje"; for (int j = 0; j <countColumnnum; j ++) {FirstCell [j] = FirStrow.CreateCell (J); FirstCell [J] .SetCellValue (nuevo HSSFrichTextString (nombres [j])); } for (int i = 0; i <xls.size (); i ++) {// crea una fila de hssfrow row = sheet.createrow (i+1); // Haga que cada registro se insertara xlsdto = xls.get (i); for (int colu = 0; colu <= 4; colu ++) {// bucle en una fila hssfcell xh = row.createCell (0); xh.setCellValue (xlsdto.getxh ()); Hssfcell xm = row.createCell (1); XM.SetCellValue (xlsdto.getxm ()); Hssfcell yxsmc = row.createCell (2); yxsmc.setCellValue (xlsdto.getyxsmc ()); Hssfcell kcm = row.createCell (3); KCM.SetCellValue (xlsdto.getkcm ()); Hssfcell cj = row.createCell (4); cj.setCellValue (xlsdto.getcj ()); (xlsdto.getMessage ()); }} // Cree una transmisión de salida de archivo y prepare la hoja de cálculo de salida salida de salida = new FileOutputStream ("POI2EXCEL/PLDRXKXXMB.XLS"); hwb.write (fuera); out.close (); System.out.println ("Exportación de la base de datos exitosa"); }}Xlsdto .java clase
// Esta clase es una clase de entidad clase pública XLSDTO {/*** Número de selección del curso*/privado Integer xkh; / *** número de estudiante*/ cadena privada xh; / *** nombre*/ private String xm; / *** College*/ private String yxSmc; / *** Número de curso*/ privado entero kch; / *** Nombre del curso*/ String private kcm; / *** puntaje*/ privado float cj; Public Integer getxkh () {return xkh; } public void setxkh (integer xkh) {this.xkh = xkh; } public String getxh () {return xh; } public void setXh (string xh) {this.xh = xh; } public String getxm () {return xm; } public void setXm (String xm) {this.xm = xm; } public String getyxsmc () {return yxsmc; } public void setyxsmc (string yxsmc) {this.yxsmc = yxsmc; } public integer getKch () {return kch; } public void setkch (Integer kch) {this.kch = kch; } public String getKcm () {return kcm; } public void setkcm (string kcm) {this.kcm = kcm; } public float getCj () {return cj; } public void setcj (float cj) {this.cj = cj; }}Salida de fondo:
Exportación de la base de datos correctamente
1.0 Hongten School of Information Technology Computer Network Basics 80.0
2.0 Wangwu Information Technology College Computer Network Basics 81.0
3.0 Li Shengji Escuela de Tecnología de la Información Básicos de aplicaciones de la red de computadoras 82.0
4.0 Conceptos básicos de la red informática Aplicación de la Clase 5 Colegio de Tecnología de la Información 83.0
5.0 Cai Shiyun Escuela de Tecnología de la Información Conceptos básicos de aplicaciones de la red de computadoras 84.0
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.