A saída do relatório é um conteúdo que geralmente está envolvido no desenvolvimento de aplicativos Java, e os relatórios gerais geralmente não têm universalidade e não são convenientes para os usuários editarem personalizados. Devido aos seus recursos de plataforma cruzada, os programas Java não podem manipular diretamente o Excel. Portanto, este artigo discute o programa Java da linha de visão POI para a leitura e importação do Excel.
Estrutura do projeto:
java_poi_excel
Arquivos do Excel usados:
xls
Xlsmain .Java Classe
// Esta classe possui um método principal, que é principalmente responsável pela execução do programa. Ao mesmo tempo, esta classe também inclui a leitura do Excel com POI (versão 2003) importar java.io.fileInputStream; importar java.io.ioException; importar java.io.inputStream; importar java.util.arraylist; import java.util.list; import java.util.list; org.apache.poi.hssf.usermodel.hssfcell; importar org.apache.poi.hssf.usermodel.hssfrow; importar org.apache.poi.hssf.usermodel.hsfsheet; importar.Poi.poi.hsf.hsf.hsfworks; /** * * @author hongten </br> * * */public class Xlsmain {public static void main (string [] args) lança ioexception {xlsmain xlsmain = new xlsmain (); Xlsdto xls = null; List <xlsdto> list = xlsmain.readxls (); tente {xlsdto2excel.xlsdto2excel (list); } catch (Exceção e) {e.printStackTrace (); } para (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 ()); }}/*** Leia o conteúdo do arquivo XLS** @return List <xlsdto> objeto* @throws ioexception* input/output (e/o) exceção*/list private <xlsdto> readxls () lança IoException {inputream is = new FileInTream ("PLDRXKXXXXMXMB.XMB.MB.SB. HSSFWorkbook HSSFWorkbook = novo HSSFWorkbook (IS); Xlsdto xlsdto = null; List <xlsdto> list = new ArrayList <xlsdto> (); // folha de loop folha para (int numsheet = 0; numSheet <hssfworkbook.getNumberOfSheets (); numSheet ++) {hssfsheet hssfsheet = hssfworkbook.getSheetat (numsheet); if (hssfsheet == null) {continua; } // Linha de loop line para (int rownum = 1; rownum <= hssfsheet.getLastrownum (); rownum ++) {hssfrow hssfrow = hssfsheet.getRow (rownum); if (hssfrow == null) {continua; } xlsdto = new xlsdto (); // Célula de coluna de loop // 0 Número 1 do aluno 1 2 Faculdade 3 Nome do curso 4 Pontuação // para (int Cellnum = 0; Cellnum <= 4; Cellnum ++) {HssfCell xh = hssfrow.getCell (0); if (xh == null) {continua; } xlsdto.setxh (getValue (xh)); Hssfcell xm = hssfrow.getCell (1); if (xm == null) {continua; } xlsdto.setxm (getValue (xm)); Hssfcell yxsmc = hssfrow.getcell (2); if (yxsmc == null) {continua; } xlsdto.setyxsmc (getValue (yxsmc)); Hssfcell kcm = hssfrow.getcell (3); if (kcm == null) {continua; } xlsdto.setkcm (getValue (KCM)); Hssfcell cj = hssfrow.getcell (4); if (cj == null) {continua; } xlsdto.setcj (float.parsefloat (getValue (cj))); list.add (xlsdto); }} Lista de retorno; } /** * Get the value in the Excel table* * @param hssfCell * Every grid in Excel* @return Values in each grid in Excel */ @SuppressWarnings("static-access") private String getValue(HSSFCell hssfCell) { if (hssfCell.getCellType() == hssfcell.cell_type_boolean) {// retorna o valor do tipo booleano Return string.valueof (hssfcell.getBooleaCellValue ()); } else if (hssfcell.getCellType () == hssfcell.cell_type_numeric) {// retorna o valor do tipo numérico retornar string.valueof (hssfcell.getNumericCellValue ()); } else {// retorna o valor do tipo de string return string.valueof (hssfcell.getStringCellValue ()); }}}Xlsdto2excel.java
// Esta classe é principalmente responsável por inserir dados no Excel (versão de 2003) import java.io.fileOutputStream; importar java.io.outputStream; importar java.util.list; importar org.apache.poi.hssf.usermodel.hssfcell; importar org.apache.poi.hssf.usermodel.hssfrichtextString; importação org.apache.poi.hsf.usermodel.hsfSfSheet; Classe pública xlsdto2excel { / ** * * @param xls * Um objeto da classe XLSDTO entidade * @THOLS Exceção * lança uma exceção durante a importação de Excel * / public static void xlsdto2Excel (list <xlsdto> xl) Exceção (// obtenha o número total de columns no número de columms no número de columns. // Crie o Documento do Excel HSSFWorkbook HWB = new HSSFWorkbook (); Xlsdto xlsdto = null; // A folha corresponde a uma página de trabalho hssfheet folha = hwb.createsheet ("pldrxkxxmbb"); Hssfrow Firstrow = Sheet.Createrow (0); // Inicie a linha com o subscrito 0 hssfcell [] primeiroCell = new HSSFCell [CountColumnNum]; String [] nomes = new String [CountColumnNum]; nomes [0] = "Número do aluno"; nomes [1] = "nome"; nomes [2] = "College"; nomes [3] = "Nome do curso"; nomes [4] = "pontuação"; for (int j = 0; j <CountColumnNum; j ++) {FirstCell [j] = firstrow.CreateCell (J); FirstCell [J] .SetCellValue (novo HssfrichtextString (nomes [j])); } para (int i = 0; i <xls.size (); i ++) {// Crie uma linha de hssfrow line = sheet.crerowrow (i+1); // obtenha cada registro a ser inserido xlsdto = xls.get (i); for (int colu = 0; colu <= 4; colu ++) {// loop em uma linha 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 ()); }} // Crie um fluxo de saída de arquivo e prepare a planilha de saída outputStream out = new FileOutputStream ("POI2EXCEL/PLDRXKXXMB.XLS"); hwb.write (out); out.Close (); System.out.println ("Exportação de banco de dados bem -sucedida"); }}XLSDTO .Java Classe
// Esta classe é uma classe de entidade classe pública XLSDTO {/*** Número de seleção do curso*/Inteiro privado xkh; / *** Número do aluno*/ String privada XH; / *** nome*/ string privada xm; / *** College*/ String privada YXSMC; / *** Número do curso*/ Inteiro privado kch; / *** Nome do curso*/ String privada KCM; / *** Pontuação*/ Float privado CJ; public integer getxkh () {return xkh; } public void Setxkh (número inteiro 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 (número inteiro 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; }}Saída de fundo:
Exportação de banco de dados com sucesso
1.0 Escola Hongten of Information Technology Computer Retwork Basics 80.0
2.0 Wangwu Information Technology College Computer Network Application Basics 81.0
3.0 Li Shengji School of Information Technology Network Application Basics 82.0
4.0 Noções básicas do aplicativo de rede de computadores da Classe 5 College of Information Technology 83.0
5.0 Escola de Tecnologia da Informação de CAI Shiyun Aplicativo de Rede de Computadores Basics 84.0
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.