java筛选表格,java怎么获取excel中的数据_java筛选excel数据
你好! 请教你个问题 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数据相关推荐
- Microsoft Excel 教程:如何在 Excel 中使用切片器筛选数据?
欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中使用切片器筛选数据. 切片器提供可单击以筛选表或数据透视表的按钮. ...
- java excel 判断组重复_Java判断Excel某列是否有重复值
最近由于项目的需要,要求判断给定的Excle中某一列值,看其是否有重复,如果有重复显示重复字段名字以及都是在那些行重复了.下面直接给出代码,让大家做下参考.如有问题我们一起讨论~需要用到poi3.8插 ...
- pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value)
pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value) 目录 pandas获取dataframe中索引值最大值所在的数 ...
- matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...
用excel绘制曲线图时如何进行坐标轴转换 点"插入"->"图表"->"XY图","子图表类型"选择&quo ...
- EXCEL中设置后面单元格的数据由前面单元格的数据带出
EXCEL中设置后面单元格的数据由前面单元格的数据带出 1:新建一个基础数据 2:在[基础数据]中建立基础数据 3:新建一个sheet命令为[操作],并在第一列单位格设置为序列,序列的基础数据在[基础 ...
- java搜索excel表格里的数据_Java读取Excel表格中的数据
前言 本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse 提示:以下是本篇文章正文内容,下面案例可供参考 一.添加jar包文件 描述:在Java中导入导出Ex ...
- java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项
本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...
- 如何用java POI在excel中画线_java poi对excel的操作详解
一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HSSF概况 HSSF 是 ...
- excel中如何拷贝已经筛选出来的数据到另外的一表格中
直接复制粘贴到新的数据表格中是不行的,数据会丢失,或者拷贝不完全,具体还没有搞清楚如何直接在excel之间互相拷贝,有一个比较笨的办法 筛选出来的数据,直接Ctrl+A 然后复制到txt文件中,在拷贝 ...
最新文章
- 和 杠精 聊Redis多线程 :(
- Svn安装成功后的操作
- 数字雕刻中“节奏”的作用
- 为什么awt_为AWT的机器人创建DSL
- php数据库postgresql,PHP 操作 PostgreSQL数据库
- 80%的软件环境管理问题,根因都在这里
- jQuery中的read 和JavaScript中 的onload函数的区别
- 小米wifi怎么创建虚拟服务器,小米路由器玩法:一键安装LLMP 建自己的网站
- 腾达u2无线网卡驱动Linux,腾达U2无线网卡驱动
- 安卓一键清理内存_雨点清理app下载-雨点清理下载 v1.0 安卓版
- 台式计算机电源接线图,​台式机硬盘电源线接法【图解】
- jQuery技巧之让任何组件都支持类似DOM的事件管理
- 1.个人建站的准备:购买云服务器和域名
- vue在一个方法执行完后执行另一个方法
- linux查看日志的多种方法集合
- SQL注入葵花宝典(基础篇)
- 手把手讲解超详细python入门游戏项目‘打外星飞船’(一)
- 冒险岛服务器租用需要考虑哪些因素?
- 仿新版支付宝账单页面滑动时月份栏被下一个月给顶上去
- 新晋总监生存指南五——人才运营机制
热门文章
- 【已解决】使用pip安装包提示TLS证书错误解决办法
- html5微课程制作,用H5做微课的好处,你知道多少?
- 单招计算机考试知识点,单招语文考点及技巧
- 获取不到配置文件:InvalidConfigurationPropertyNameException: Configuration property name ‘‘ is not valid
- 新版Chrome如何更换搜索引擎
- 国家拟应用物联网技术建中药材追溯体系
- python数圈算法_Python实践|围圈数数多人运动
- 秒懂Java类型(Type)系统
- 趣学算法系列-贪心算法
- 【LeetCode通关全记录】658. 找到 K 个最接近的元素