热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

java的poi技术读取和导入Excel实例

报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑。Java程序由于其跨平台特性,不能直接操纵

报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用性,不方便用户进行个性化编辑。Java程序由于其跨平台特性,不能直接操纵Excel。因此,本文探讨一下POI视线Java程序进行Excel的读取和导入。

项目结构:
java_poi_excel

用到的Excel文件:
xls

XlsMain .java 类

//该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版)
 
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
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
* * */ public class XlsMain { public static void main(String[] args) throws IOException { XlsMain xlsMain = new XlsMain(); XlsDto xls = null; List list = xlsMain.readXls(); try { XlsDto2Excel.xlsDto2Excel(list); } catch (Exception e) { e.printStackTrace(); } for (int i = 0; i 对象 * @throws IOException * 输入/输出(i/o)异常 */ private List readXls() throws IOException { InputStream is = new FileInputStream("pldrxkxxmb.xls"); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is); XlsDto xlsDto = null; List list = new ArrayList(); // 循环工作表Sheet for (int numSheet = 0; numSheet

XlsDto2Excel.java类

//该类主要负责向Excel(2003版)中插入数据

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
 
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;
 
 
public class XlsDto2Excel {
 
  /**
   * 
   * @param xls
   *      XlsDto实体类的一个对象
   * @throws Exception
   *       在导入Excel的过程中抛出异常
   */
  public static void xlsDto2Excel(List xls) throws Exception {
    // 获取总列数
    int CountColumnNum = xls.size();
    // 创建Excel文档
    HSSFWorkbook hwb = new HSSFWorkbook();
    XlsDto xlsDto = null;
    // sheet 对应一个工作页
    HSSFSheet sheet = hwb.createSheet("pldrxkxxmb");
    HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始
    HSSFCell[] firstcell = new HSSFCell[CountColumnNum];
    String[] names = new String[CountColumnNum];
    names[0] = "学号";
    names[1] = "姓名";
    names[2] = "学院";
    names[3] = "课程名";
    names[4] = "成绩";
    for (int j = 0; j 

XlsDto .java类

//该类是一个实体类

public class XlsDto {
  /**
   * 选课号
   */
  private Integer xkh;
  /**
   * 学号
   */
  private String xh;
  /**
   * 姓名
   */
  private String xm;
  /**
   * 学院
   */
  private String yxsmc;
  /**
   * 课程号
   */
  private Integer kch;
  /**
   * 课程名
   */
  private String kcm;
  /**
   * 成绩
   */
  private 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;
  }
   
}

后台输出:

数据库导出成功

1.0    hongten    信息技术学院    计算机网络应用基础    80.0
2.0    王五    信息技术学院    计算机网络应用基础    81.0
3.0    李胜基    信息技术学院    计算机网络应用基础    82.0
4.0    五班古    信息技术学院    计算机网络应用基础    83.0
5.0    蔡诗芸    信息技术学院    计算机网络应用基础    84.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
author-avatar
3051451abcd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有