嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。
for (int i = 0; i < 1; i++) {
Row row = firstSheet.getRow(i);
for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) {
String rtm=row.getCell(j).getStringCellValue();
if(rtm.contains(text)){
System.out.println(row.getCell(j).getStringCellValue()+"|| ");
}
}
}
问题出在你的第一行:
for (int i = 0; i < 1; i++) {
这将只运行一次循环,这就是为什么您只获得第一行!
对于非字符串单元格,例如数字单元格,您的代码也将失败。
我建议您花点时间阅读ApachePOI文档,了解行和单元格的迭代。那么你可能想要更像这样的东西:
System.out.println("Searching for cells containing '" + text + "'");
DataFormatter formatter = new DataFormatter();
for (Sheet sheet : wb ) {
for (Row row : sheet) {
for (Cell cell : row) {
String value = formatter.formatCellValue(cell);
if (value.contains(text)) {
System.out.println("Found at " + (new CellReference(cell)).formatAsString() + ":");
System.out.println(value);
}
}
}
}
这将处理非字符串单元格,并将为您提供如下输出:
Searching for cells containing 'needle'
Found at A5
This is a needle
Found at B10
A needle can be helpful
然后根据需要进行调整!
问题内容: 使用Apache POI时,我在excel中遇到问题。我可以跨行阅读,但是有时候我只想阅读特定的列。 因此可以读取任何特定列,例如仅“ A”列或仅“ C”列。 我为此使用 Java 语言。 问题答案: heikkim是正确的,这是一些示例代码,这些代码改编自我拥有的一些代码: 对于类似的用途
我在使用Apache POI时遇到excel的问题。我可以跨行阅读,但有时我会在一个情况下,我只想阅读一个特定的列。 那么,是否可以读取任何特定的列,例如只读取“A”列或只读取“C”列。 为此我使用Java语言。
问题内容: 我正在使用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库,但我有一些数据我不想被读取 - 所以我需要程序从特定行开始读取文件。 我需要第10行之后的单元格和行中的所有数据,直到文档为空。我已尝试使用以下代码。 但它只会给我第10行单元格的所有数据。 我期待着你的消息:-)。
我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。