项目结构:

http://www.cnblogs.com/hongten/gallery/p_w_picpath/111987.html

用到的Excel文件:

http://www.cnblogs.com/hongten/gallery/p_w_picpath/111988.html

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

*

*                 参考地址:http://hao0610.iteye.com/blog/1160678

*

*/

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 < list.size(); i++) {

xls = (XlsDto) list.get(i);

System.out.println(xls.getXh() + "        " + xls.getXm() + "        "

+ xls.getYxsmc() + "        " + xls.getKcm() + "        "

+ xls.getCj());

}

}

/**

* 读取xls文件内容

*

* @return List对象

* @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 < hssfWorkbook.getNumberOfSheets(); numSheet++) {

HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);

if (hssfSheet == null) {

continue;

}

// 循环行Row

for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {

HSSFRow hssfRow = hssfSheet.getRow(rowNum);

if (hssfRow == null) {

continue;

}

xlsDto = new XlsDto();

// 循环列Cell

// 0学号 1姓名 2学院 3课程名 4 成绩

// for (int cellNum = 0; cellNum <=4; cellNum++) {

HSSFCell xh = hssfRow.getCell(0);

if (xh == null) {

continue;

}

xlsDto.setXh(getValue(xh));

HSSFCell xm = hssfRow.getCell(1);

if (xm == null) {

continue;

}

xlsDto.setXm(getValue(xm));

HSSFCell yxsmc = hssfRow.getCell(2);

if (yxsmc == null) {

continue;

}

xlsDto.setYxsmc(getValue(yxsmc));

HSSFCell kcm = hssfRow.getCell(3);

if (kcm == null) {

continue;

}

xlsDto.setKcm(getValue(kcm));

HSSFCell cj = hssfRow.getCell(4);

if (cj == null) {

continue;

}

xlsDto.setCj(Float.parseFloat(getValue(cj)));

list.add(xlsDto);

}

}

return list;

}

/**

* 得到Excel表中的值

*

* @param hssfCell

*                        Excel中的每一个格子

* @return Excel中每一个格子中的值

*/

@SuppressWarnings("static-access")

private String getValue(HSSFCell hssfCell) {

if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {

// 返回布尔类型的值

return String.valueOf(hssfCell.getBooleanCellValue());

} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {

// 返回数值类型的值

return String.valueOf(hssfCell.getNumericCellValue());

} else {

// 返回字符串类型的值

return String.valueOf(hssfCell.getStringCellValue());

}

}

}

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 < CountColumnNum; j++) {

firstcell[j] = firstrow.createCell(j);

firstcell[j].setCellValue(new HSSFRichTextString(names[j]));

}

for (int i = 0; i < xls.size(); i++) {

// 创建一行

HSSFRow row = sheet.createRow(i + 1);

// 得到要插入的每一条记录

xlsDto = xls.get(i);

for (int colu = 0; colu <= 4; colu++) {

// 在一行内循环

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());

}

}

// 创建文件输出流,准备输出电子表格

OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls");

hwb.write(out);

out.close();

System.out.println("数据库导出成功");

}

}

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

java excel导入jsp_导入导出EXCEL数据(jsp+ssh)相关推荐

  1. Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service,就一个核心方法,没错就下面这个代码就能实现了.前提是项目里面要引用hutool包.把我这个复制到 ...

  2. vue实现纯前端导入与解析excel表格文件,导出Excel

    一.安装相关依赖 npm install --save xlsx file-saver 二.使用 import * as XLSX from 'xlsx/xlsx.mjs' const FileSav ...

  3. java使用POI工具类导出excel

    POI导出excel 1.导入maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId ...

  4. java导出excel 客户端_Java poi导出Excel下载到客户端

    Java poi 导出Excel并下载到客户端,具体内容如下 Maven配置,包含了其他文件格式的依赖,就全贴出来了 org.apache.poi poi-excelant 3.12 org.apac ...

  5. java生成excel文件步骤_java导出Excel文件的步骤全纪录

    一.背景 当前b/s模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用excel打开(电信系统.银行系统).或者是:我们已经习惯用excel打印.这样在我们实际 ...

  6. java导出excel报表_java怎样导出Excel报表呢?

    当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用Excel打印, ...

  7. Java web项目利用POI导出EXCEL表格

    SSH2 POI导出EXCEL表格 1.首先导入poi的jar包 HSSFWorkbook :工作簿,代表一个excel的整个文档 HSSFSheet:工作表 HSSFRow :行 HSSFCell: ...

  8. 中报表导出带表头_来看看Java是 如何优雅的导出 Excel的

    点击上方"Python高校",关注 文末干货立马到手 来源:你在我家门口 juejin.im/post/5c6b6b126fb9a04a0c2f024f 前言 公司项目最近有一个需 ...

  9. java excil表格开发_JAVA导出Excel电子表格的方法

    JAVA导出Excel电子表格的方法 package com.qingruxu.excel; import java.io.File; import java.io.IOException; impo ...

  10. java excel进度条_导出excel 用easyui显示进度条(也适用于其他框架遮罩层,进度条)...

    每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面,要么狂点导出.感知太差了~甚至用户误操作会导致服务器崩溃. 所以 ...

最新文章

  1. 使用jdk生成ssl证书文件
  2. [iOS] 封装倒计时(一句话调用,无内存泄漏)
  3. 疲劳驾驶数据集_人工检查,11 个类、97942 个标签,Roboflow 开源自动驾驶数据集可以使用啦...
  4. 关于 SAP Spartacus defaultCmsContentProvider 和默认 layoutConfig 的一些测试
  5. 2018-07-10 为Chrome和火狐浏览器编写扩展
  6. C#中FuncT,TResult的用法和Lambda表达式
  7. iphone UITableView及UIWebView的使用
  8. 微信公众平台-杂项:小程序导航
  9. SQL中的函数 •Aggregate 函数 •Scalar 函数
  10. 带你自学Python系列(十三):Python函数的用法(三)
  11. 编译原理-语法分析详解
  12. oracle表分区设计_论oracle分区表的创建与维护
  13. 初次使用Vscode,遇到了一个极具没有水平的问题,解决之后瞬间感到无比尴尬
  14. nodejs websocket 并发调试笔记
  15. tensorflow实现非线性拟合
  16. 小公司需要企业邮箱么?小企业用什么企业邮箱?
  17. AcWing 1129 热浪
  18. 如何控制退款率和提高复购率的技巧(纯干货分享)
  19. The path to the Subversion executable is probably wrong. Fix it.
  20. NR PDCP duplication

热门文章

  1. Ubuntu设置双显示器
  2. DirectAdmin
  3. 解决 手机能连接上wifi而电脑却却不能连接上wifi的情况
  4. 基于JavaSwing+Mysql的超市商品管理系统设计和实现
  5. 不使用setPositiveButton 如何让alertdialog消失
  6. 六度分离 弗洛伊德算法
  7. 域名注册及免费空间and企业邮箱
  8. win2003企业版sp2序列号
  9. 【PS3】二之国 白色圣灰的女王 日本制造的视觉效果
  10. 当Top-k遇到深度学习