导航:首页 > 净水问答 > java读取excel过滤空行

java读取excel过滤空行

发布时间:2022-08-24 18:51:24

A. java读取excel时怎么过滤掉里面的空行

利用continue,如果当前行是空的,结束当前循环继续下一循环

B. jAVA-poi读取excel忽略第一行

在遍历行的时候,把第一行去掉不就可以了么,下面是示例

for (int j = 0; j < rowSize; j++) {//遍历行

Row row = sheet.getRow(j);

if (row == null) {//略过空行

continue;

}

int cellSize = row.getLastCellNum();//行中有多少个单元格,也就是有多少列

if (j == 0) {//第一行是标题行

continue;

}

} else {//其他行是数据行

Map<String, String> rowMap = new HashMap<String, String>();//对应一个数据行

for (int k = 0; k < titles.size(); k++) {

Cell cell = row.getCell(k);

String key = titles.get(k);

String value = null;

if (cell != null) {

value = cell.toString();

}

rowMap.put(key, value);

}


C. java jxl 读取excel时读取了很多空行 求解决办法

这应该是excel文件中的问题,看看是不是文件中后面那些行里面有空格,或者做过其他标记,可以直接把excel的第21到第31行选中然后删除,保存好之后重新用jxl读取试试。

D. 读Excel档时读出了几条空行,如何去掉空行

可以选择表中的任何一个单元格,然后用定位条件查找空值,删除就可以了!

E. JAVA读取EXCEL文件

你可以用一个int集合去存储每个编码的初始位置,然后每次读取就从这个int集合中读取指定范围内的内容,(注意,在读取的时候,获取全部行的函数会把部分空行也读取出来,这个要记得做处理,一般会出现在集合最后一条)

F. java操作excel的问题

可以是一下GCExcel这个组件,相较POI,GCExcel在功能上更加完善,并且完全参照Excel的规范。如果想要删除行不留空白行,直接在GCExcel调用删除命令就可以了,不需要再做上移的操作,更加易于理解。删除行时只需要输入行的名称或者索引,像这样:

worksheet2.getRange("A3:A5").getEntireRow().delete();

或worksheet2.getRange("2:4").delete(); 支持删除多行。

参考文档:网页链接

G. 求一段java读取excel的程序,读为一个二维数组,excel中有许多空格,也要保留,或者用什么特殊数字代替

先看代码,挨句解释:
一般遍历使用两种方式,1:得到总的行数和每行的列数,然后循环。2:使用迭代
先看第一种:
Java代码
package com.golden.test;

import java.io.File;
import java.io.FileInputStream;

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 崔素强
*
*/
public class PoiReadXls2 {
public static void main(String[] args) {
File f = new File("c:\\a.xls");
try {
FileInputStream is = new FileInputStream(f);
HSSFWorkbook wbs = new HSSFWorkbook(is);
HSSFSheet childSheet = wbs.getSheetAt(0);
// System.out.println(childSheet.getPhysicalNumberOfRows());
System.out.println("有行数" + childSheet.getLastRowNum());
for (int j = 0; j < childSheet.getLastRowNum(); j++) {
HSSFRow row = childSheet.getRow(j);
// System.out.println(row.getPhysicalNumberOfCells());
// System.out.println("有列数" + row.getLastCellNum());
if (null != row) {
for (int k = 0; k < row.getLastCellNum(); k++) {
HSSFCell cell = row.getCell(k);
if (null != cell) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
System.out.print(cell.getNumericCellValue()
+ " ");
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串
System.out.print(cell.getStringCellValue()
+ " ");
break;
case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
System.out.println(cell.getBooleanCellValue()
+ " ");
break;
case HSSFCell.CELL_TYPE_FORMULA: // 公式
System.out.print(cell.getCellFormula() + " ");
break;
case HSSFCell.CELL_TYPE_BLANK: // 空值
System.out.println(" ");
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
System.out.println(" ");
break;
default:
System.out.print("未知类型 ");
break;
}
} else {
System.out.print("- ");
}
}
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

得到Excel的文件然后读取,这个很简单。关键有两个地方,也许在网上会看到有的这样使用有的那样使用。
System.out.println("有行数" + childSheet.getLastRowNum());
System.out.println(childSheet.getPhysicalNumberOfRows());
System.out.println("有列数" + row.getLastCellNum());
System.out.println(row.getPhysicalNumberOfCells());
如果人都拷贝代码进行使用了,不知道有什么区别。太多的区别不知道,但是有一点我发现了,那就是如果中间各行或者隔列的话getPhysicalNumberOfRows和getPhysicalNumberOfCells就不能读取到所有的行和列了。
再者,一定要对单元格的格式进行判断switch (cell.getCellType()),不同的单元格格式使用不同的方法。最后加上为止类型,以防万一。
而且在数字类型里,又分为了纯数字和时间格式:
Java代码
case HSSFCell.CELL_TYPE_NUMERIC: // 数值型
if (HSSFDateUtil.isCellDateFormatted(cell)) {
// 如果是date类型则 ,获取该cell的date值
value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
} else { // 纯数字
value = String.valueOf(cell.getNumericCellValue());
}

还有一种迭代的方法:
Java代码
package com.golden.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**
*
* @author 崔素强
*
*/
public class PoiReadXls {
@SuppressWarnings( { "unchecked", "deprecation" })
public static void main(String[] args) {
File f = new File("c:\\a.xls");
try {
InputStream input = new FileInputStream(f);
POIFSFileSystem fs = new POIFSFileSystem(input);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
Iterator rows = sheet.rowIterator();
while (rows.hasNext()) {
HSSFRow row = (HSSFRow) rows.next();
// System.out.print("行:" + row.getRowNum() + " ");
Iterator cells = row.cellIterator();
while (cells.hasNext()) {
HSSFCell cell = (HSSFCell) cells.next();
// System.out.println("列:" + cell.getCellNum());
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC: // 数字
System.out.print(cell.getNumericCellValue() + " ");
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串
System.out.print(cell.getStringCellValue() + " ");
break;
case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
System.out.println(cell.getBooleanCellValue() + " ");
break;
case HSSFCell.CELL_TYPE_FORMULA: // 公式
System.out.print(cell.getCellFormula() + " ");
break;
case HSSFCell.CELL_TYPE_BLANK: // 空值
System.out.println(" ");
break;
case HSSFCell.CELL_TYPE_ERROR: // 故障
System.out.println(" ");
break;
default:
System.out.print("未知类型 ");
break;
}
}
System.out.println();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

这种方法,如果数据的紧凑的,使用还是方便的,但是我发现,如果是空行或者是空列,他就会隔过去。具体的自己试试就知道了。
另外,也能看到这里得到Excel文件的方式是通过File,如果要引用到Struts2里,这是很简单的,因为Struts2上传时Action里定义的就是File或者File数组。

H. java编写Excel过滤小工具在线等

方式1:记录要过滤的行号,然后根据这个记录去操作。
方式2:两个文件内容全读到变量里,然后程序去过滤

I. 用java程序或者shell script读取excel文件中并且去掉文件里面所有的空格

shell是Unix/Linux里的东西,虽然Windows上也可以装Cygwin之类的模拟shell的东西,但终究只能处理普通文本文件。
除非你把excel另存为文本文件。

J. java poi读取Excel,怎么判断空行

项目中常用的写法:
public static boolean isRowEmpty(Row row) {
for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) {
Cell cell = row.getCell(c);
if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK)
return false;
}
return true;
}

阅读全文

与java读取excel过滤空行相关的资料

热点内容
java过滤器ajax 浏览:870
配件滤芯有什么用 浏览:716
桶式鱼缸氧气和过滤器 浏览:105
工业废水使用什么管道 浏览:953
福岛为什么还有污水 浏览:602
电动牙刷水垢图片 浏览:379
郑州空调除垢剂 浏览:170
环氧树脂玻璃钢防水施工方案 浏览:257
饮水机用什么方法除水垢 浏览:268
宁德市空气净化器多少钱 浏览:667
反渗透化学清洗到什么时候合格 浏览:62
费森尤斯和劳尔水处理 浏览:766
扁鹊怎么用技能给队友回血 浏览:563
gsx600r多少钱全新纯水 浏览:293
钠离子交换器树脂水含银吗 浏览:435
现代空气净化器有什么不足 浏览:95
请问高的食材净化器的价格是多少 浏览:330
离子交换滤芯好还是活性炭滤芯好 浏览:219
净水机出纯水少怎么回事 浏览:320
常压过滤减压过滤 浏览:203