我正在使用Apache POI库,但我有一些数据我不想被读取 - 所以我需要程序从特定行开始读取文件。
我需要第10行之后的单元格和行中的所有数据,直到文档为空。我已尝试使用以下代码。
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
Row getSchool = firstSheet.getRow(10);
Iterator<Cell> cellIterator = getSchool.cellIterator();
while (iterator.hasNext())
{
while (cellIterator.hasNext())
{
...
}
}
但它只会给我第10行单元格的所有数据。
我期待着你的消息:-)。
参考以下内容:
String fileName = "D:\\TestScripts.xls"; // file
POIFSFileSystem fileSystem = new POIFSFileSystem(new FileInputStream(fileName));
HSSFWorkbook workbook = new HSSFWorkbook(fileSystem);
// HSSFSheet sheet = workbook.getSheetAt(0); //Get first Excel Sheet
HSSFSheet sheet = workbook.getSheet("SheetName"); //Get data as per sheet name
for (Row row : sheet) { // For each Row.
Cell cell = row.getCell(0); // Get the Cell at the Index / Column you want.
if(cell.getStringCellValue().equalsIgnoreCase("test")) {
System.out.println(cell.getRow().getLastCellNum());
for(int i=0;i<=cell.getRow().getLastCellNum()-1;i++) {
System.out.println(cell.getRow().getCell(i));
}
}
}
如果不查找任何特定的列数据,请删除以下条件
if(cell.getStringCellValue().equalsIgnoreCase("test"))
注意:您需要将上面代码中的<code>测试</code>更改为您的列名,如id,根据工作表数据标题的名称
您只从这里的第11行获取数据:
Row getSchool = firstSheet.getRow(10);
请参阅图纸的文档。getRow(int行数)
返回基于 0 的逻辑行(非物理行)。如果请求未定义的行,则会得到 null。也就是说,第 4 行表示工作表上的第五行。
查看文档中关于如何迭代行和单元格的示例。
您可以使用类似如下的内容:
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
for (Row row : firstSheet) {
for (Cell cell : row) {
// Do something here
}
}
如果你想遍历一行中的所有单元格,检查如何遍历单元格,控制丢失/空白单元格。
CellIterator
只会返回文件中定义的单元格,这些单元格主要是带有值或样式的单元格,但它取决于Excel。
您可以指定Row.MissingCellPolicy:
Row.getCell(int, MissingCellPolicy)
这里有一个例子:
int lastColumn = Math.max(row.getLastCellNum(), MY_MINIMUM_COLUMN_COUNT);
for (int cn = 0; cn < lastColumn; cn++) {
Cell c = row.getCell(cn, Row.RETURN_BLANK_AS_NULL);
if (c == null) {
// The spreadsheet is empty in this cell
} else {
// Do something useful with the cell's contents
}
}
嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。
问题内容: 我正在使用Apache POI库,但是我有一些不想读取的数据-因此,我需要该程序才能从特定的行开始读取文件。 我想要来自第10行之后的单元格和行的所有数据,直到文档为空。我尝试了以下代码。 但这只会为我提供第10行中所有单元格的数据。 我期待收到您的来信:-)。 问题答案: 您仅从此处的第11行获取数据: 请参阅Sheet.getRow(int rownum) 的文档 返回基于0的逻辑
问题内容: 可以说我有一个文本文件:data.txt(包含2000行) 如何从500-1500,然后从1500-2000读取给定的特定行,并显示特定行的输出? 此代码将读取整个文件(2000行) 如何修改上述代码以读取特定行? 问题答案: 我建议使用java.io.LineNumberReader。它扩展了BufferedReader,您可以使用它来获取当前行号 您还可以使用Java 7 ,如果适
问题内容: 使用Apache POI时,我在excel中遇到问题。我可以跨行阅读,但是有时候我只想阅读特定的列。 因此可以读取任何特定列,例如仅“ A”列或仅“ C”列。 我为此使用 Java 语言。 问题答案: heikkim是正确的,这是一些示例代码,这些代码改编自我拥有的一些代码: 对于类似的用途
我在使用Apache POI时遇到excel的问题。我可以跨行阅读,但有时我会在一个情况下,我只想阅读一个特定的列。 那么,是否可以读取任何特定的列,例如只读取“A”列或只读取“C”列。 为此我使用Java语言。
我想从视频中的特定帧读取到特定帧。例如,我的视频由150帧组成,但我想从该视频的第5帧到第134帧读取视频。有可能吗?