導航:首頁 > 凈水問答 > 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過濾空行相關的資料

熱點內容
污水板框機低壓進料為什麼有倒流 瀏覽:260
凈水器反滲透膜出來的水發臭 瀏覽:905
ctpps版樹脂感光液 瀏覽:144
反滲透純水設備廣州 瀏覽:496
凈水器哪個好性價比高2020 瀏覽:654
用醋洗水垢化學方程式 瀏覽:810
泰州二手煙凈化器大概多少錢 瀏覽:374
RO反滲透膜的安裝方向 瀏覽:3
污水管覆土達不到要求怎辦 瀏覽:264
如何更換陶瓷台式濾芯 瀏覽:592
edi構造 瀏覽:929
污水處理初級證好考嗎 瀏覽:598
EDI酸最多清洗多久 瀏覽:962
誤喝5克除垢劑的水 瀏覽:343
樹脂飾品設備 瀏覽:994
污水處理廠畢業設計日誌 瀏覽:97
飛利浦gc2046除垢沖不出水 瀏覽:548
污水廠先進班組資料 瀏覽:898
污水處理有哪些污泥 瀏覽:944
超量排放廢水如何處罰 瀏覽:50