你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?

主要用poi.jar 包。包含两jar就可以了:poi-3.16.jar、poi-ooxml-3.16.jar

主要方法步:

/**

* filePath 文件路

* unCaseRow  要排除的行数(从上往下)

* unCaseLine  要排除的列数(往右)

*/

public List readExcel(String filePath, int unCaseRow, int unCaseLine) throws Exception {

Sheet sheet = null;

FileInputStream inStream = null;

try {

inStream = new FileInputStream(new File(filePath));

Workbook workBook = WorkbookFactory.create(inStream);

sheet = workBook.getSheetAt(0);

} catch (Exception e) {

e.printStackTrace();

throw new Exception();

} finally {

try {

if (inStream != null) {

inStream.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

List list = init(sheet, unCaseRow, unCaseLine);// 需要排除行数

return list;

}

// 初始化表格中的每一行,并得到每一个单元格的值

private List init(Sheet sheet, int unCaseRow, int unCaseLine) {

int rowNum = sheet.getLastRowNum()   1; // 从零开始

List result = new ArrayList();

String[] rowArr = null;

Row row = null;

Cell cell = null;

int rowLength = 0;

int rowIndex = 0;

String rowStr = null;

for (int i = unCaseRow; i

row = sheet.getRow(i);

// 每有新的一行,创建一个新的LinkedList对象

rowLength = row.getLastCellNum();

rowIndex = 0;

rowArr = new String[LINECOUNT];

for (int j = unCaseLine; j

cell = row.getCell(j);

// 获取单元格的值

rowStr = getCellValue(cell);

// 将得到的值放入链表中

rowArr[rowIndex ] = rowStr;

}

result.add(rowArr);

}

return result;

}

// 获取单元格的值

@SuppressWarnings("deprecation")

private String getCellValue(Cell cell) {

String cellValue = "";

DataFormatter formatter = new DataFormatter();

if (cell != null) {

// 判断单元格数据的类型,不同类型调用不同的方法

switch (cell.getCellType()) {

// 数值类型

case Cell.CELL_TYPE_NUMERIC:

// 进一步判断 ,单元格格式是日期格式

if (DateUtil.isCellDateFormatted(cell)) {

cellValue = formatter.formatCellValue(cell);

} else {

// 数值

double value = cell.getNumericCellValue();

int intValue = (int) value;

cellValue = value - intValue == 0 ? String.valueOf(intValue) : String.valueOf(value);

}

break;

case Cell.CELL_TYPE_STRING:

cellValue = cell.getStringCellValue();

break;

case Cell.CELL_TYPE_BOOLEAN:

cellValue = String.valueOf(cell.getBooleanCellValue());

break;

// 判断单元格是公式格式,需要做一种特殊处理来得到相应的值

case Cell.CELL_TYPE_FORMULA: {

try {

cellValue = String.valueOf(cell.getNumericCellValue());

} catch (IllegalStateException e) {

cellValue = String.valueOf(cell.getRichStringCellValue());

}

}

break;

case Cell.CELL_TYPE_BLANK:

cellValue = "";

break;

case Cell.CELL_TYPE_ERROR:

cellValue = "";

break;

default:

cellValue = cell.toString().trim();

break;

}

}

return cellValue.trim();

}

解析成对象以后,不论是插入数据库,还是jsp,都是一样的。

插入数据库:hibernate、mybatis

在jsp显示:对象封装进list,在页面显示list。

java怎么获取excel中的数据

使用java poi

package webservice;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

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;

public class ExcelController {

@SuppressWarnings("deprecation")

public void excel() throws FileNotFoundException, IOException{

String filename = "d:\\excel.xls";

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filename));

//按名引用excel工作表

// HSSFSheet sheet = workbook.getSheet("JSP");

//用式excel工作表采用工作表索引值

HSSFSheet sheet = workbook.getSheetAt(0);

HSSFRow row ;

HSSFCell cell1;

int rows=sheet.getLastRowNum();

for(int icount=0;icount

row = sheet.getRow(icount);

int line=row.getPhysicalNumberOfCells();

for(int j=0;j

cell1= row.getCell(j);

System.out.println(cell1 "--" icount "---" j);

}

}

//读取值

// System.out.println(cell.getStringCellValue());

//新建输流

FileOutputStream fout = new FileOutputStream(filename); //PS:filename 路径处理直接写入模版文件

//存盘

workbook.write(fout);

fout.flush();

//结束关闭

fout.close();

}

public HSSFCell getCell(HSSFRow row, int index) {

// 取发期单元格

HSSFCell cell = row.getCell(index);

// 单元格存

if (cell == null) {

// 创建单元格

cell = row.createCell(index);

}

// 返单元格

return cell;

}

public static void main(String[] args) {

ExcelController ec = new ExcelController();

try {

ec.excel();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

java poi怎么获取excel单元格的内容

先excel文件,获取worksheet,然后获取行,然后获取cell,最后根cell的类型获。关键代码参照下面。

File f = new File(filePath);

FileInputStream fis = null;

try {

fis = new FileInputStream(f);

} catch (FileNotFoundException e) {

// TODO

}

XSSFWorkbook wk = new XSSFWorkbook(fis);

XSSFSheet sht = wk.getSheetAt(0);

XSSFRow row = sht.getRow(0);

XSSFCell cell = rw.getCell(0);

int type = cell.getCellType();

String valueString = cell.getStringCellValue();

Double valueNumber = cell.getNumericCellValue();

用java编写代码按照正确格式读取完整excel表格的数据,并导入数据库,遇到了麻烦

// 以我在项目中运用的jxl的核心

try {

Workbook book = null;

book = Workbook.getWorkbook(file);

// 获得第一个工作表对象

Sheet sheet = book.getSheet(0);

int rows = sheet.getRows();

if(rows>1){

Map idnomap = this.getStudentByIdnos(sheet);

for (int j = 1; j

TStudentinfo stu = this.getStudent(sheet,sheet.getRow(j),rows,j,appmap,classmap,idnomap,state);

if(stu==null){

continue;

}

stulist.add(stu);

}

}

book.close();

// DEMO: db 操作在

xxxService.add(stulist);

}

catch (Exception e) {

System.out.println(e);

}

java筛选表格,java怎么获取excel中的数据_java筛选excel数据相关推荐

  1. Microsoft Excel 教程:如何在 Excel 中使用切片器筛选数据?

    欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中使用切片器筛选数据. 切片器提供可单击以筛选表或数据透视表的按钮. ...

  2. java excel 判断组重复_Java判断Excel某列是否有重复值

    最近由于项目的需要,要求判断给定的Excle中某一列值,看其是否有重复,如果有重复显示重复字段名字以及都是在那些行重复了.下面直接给出代码,让大家做下参考.如有问题我们一起讨论~需要用到poi3.8插 ...

  3. pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value)

    pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value) 目录 pandas获取dataframe中索引值最大值所在的数 ...

  4. matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...

    用excel绘制曲线图时如何进行坐标轴转换 点"插入"->"图表"->"XY图","子图表类型"选择&quo ...

  5. EXCEL中设置后面单元格的数据由前面单元格的数据带出

    EXCEL中设置后面单元格的数据由前面单元格的数据带出 1:新建一个基础数据 2:在[基础数据]中建立基础数据 3:新建一个sheet命令为[操作],并在第一列单位格设置为序列,序列的基础数据在[基础 ...

  6. java搜索excel表格里的数据_Java读取Excel表格中的数据

    前言 本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse 提示:以下是本篇文章正文内容,下面案例可供参考 一.添加jar包文件 描述:在Java中导入导出Ex ...

  7. java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项

    本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...

  8. 如何用java POI在excel中画线_java poi对excel的操作详解

    一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HSSF概况 HSSF 是 ...

  9. excel中如何拷贝已经筛选出来的数据到另外的一表格中

    直接复制粘贴到新的数据表格中是不行的,数据会丢失,或者拷贝不完全,具体还没有搞清楚如何直接在excel之间互相拷贝,有一个比较笨的办法 筛选出来的数据,直接Ctrl+A 然后复制到txt文件中,在拷贝 ...

最新文章

  1. 和 杠精 聊Redis多线程 :(
  2. Svn安装成功后的操作
  3. 数字雕刻中“节奏”的作用
  4. 为什么awt_为AWT的机器人创建DSL
  5. php数据库postgresql,PHP 操作 PostgreSQL数据库
  6. 80%的软件环境管理问题,根因都在这里
  7. jQuery中的read 和JavaScript中 的onload函数的区别
  8. 小米wifi怎么创建虚拟服务器,小米路由器玩法:一键安装LLMP 建自己的网站
  9. 腾达u2无线网卡驱动Linux,腾达U2无线网卡驱动
  10. 安卓一键清理内存_雨点清理app下载-雨点清理下载 v1.0 安卓版
  11. 台式计算机电源接线图,​台式机硬盘电源线接法【图解】
  12. jQuery技巧之让任何组件都支持类似DOM的事件管理
  13. 1.个人建站的准备:购买云服务器和域名
  14. vue在一个方法执行完后执行另一个方法
  15. linux查看日志的多种方法集合
  16. SQL注入葵花宝典(基础篇)
  17. 手把手讲解超详细python入门游戏项目‘打外星飞船’(一)
  18. 冒险岛服务器租用需要考虑哪些因素?
  19. 仿新版支付宝账单页面滑动时月份栏被下一个月给顶上去
  20. 新晋总监生存指南五——人才运营机制

热门文章

  1. 【已解决】使用pip安装包提示TLS证书错误解决办法
  2. html5微课程制作,用H5做微课的好处,你知道多少?
  3. 单招计算机考试知识点,单招语文考点及技巧
  4. 获取不到配置文件:InvalidConfigurationPropertyNameException: Configuration property name ‘‘ is not valid
  5. 新版Chrome如何更换搜索引擎
  6. 国家拟应用物联网技术建中药材追溯体系
  7. python数圈算法_Python实践|围圈数数多人运动
  8. 秒懂Java类型(Type)系统
  9. 趣学算法系列-贪心算法
  10. 【LeetCode通关全记录】658. 找到 K 个最接近的元素