gpt4 book ai didi

Java Apache POI - 获取单元格匹配正则表达式右侧单元格的值?

转载 作者:行者123 更新时间:2023-12-02 11:11:29 25 4
gpt4 key购买 nike

我有一个 Excel 电子表格,其中充满了相应值单元格左侧的标签单元格。像这样:

     E                  F
3 Invoice Number "ABC123"
4 Issue Date "2018-04-01"
5 Amount Due 298.43

我不能依赖我想要的值与我处理的每个电子表格位于相同的静态单元格位置。

我想使用正则表达式来查找与我想要的值(F 列)相对应的标签单元格(E 列),然后将该值设置为变量。

我正在将最初使用 Python 编写的遗留代码重构为 Java(使用 Apache POI 库)。 Python代码使用以下语法来实现上述目标:

for row in range(startrow, row+1):
if str(rowdata[0].lower().find("invoice number")) > -1:
invoice_number = rowdata[i+1]

我在 Apache POI 文档中找不到等效的功能。我正在尝试做的伪代码示例:

String invoiceNumber;
Iterator<Row> rowIterator = sheet.iterator;
while(rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> = row.cellIterator();
while(cellIterator.hasNext()) {
if (cell.matches("invoice number") {
invoiceNumber = cell + 1
}
}
}

任何朝正确方向的插入将不胜感激。

最佳答案

String invoiceNumber ;
Iterator<Sheet> sheetIt = wb.sheetIterator();
while (sheetIt.hasNext()) {
Sheet sheet= sheetIt.next();
Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIt = row.cellIterator();
while (cellIt.hasNext()) {
Cell cell = cellIt.next();
if(cell.getStringCellValue().equals("Invoice Number")) {
invoiceNumber= row.getCell(cell.getColumnIndex()+1).getStringCellValue();

}
}
}
}

关于Java Apache POI - 获取单元格匹配正则表达式右侧单元格的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50592170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com