java中的工作簿以在xlsx文件中查找工作表中以“$”开头的所有单词

问题描述

我正在处理一个 Excel 工作表,其中有多个列,其中包含多个文本值,包括$ 开头的变量。我正在使用工作簿编写 Java 代码来读取 xlsx 文件。由于我以前从未使用过它,有人可以告诉我如何使用它来完成这项任务。 我的代码结构在这里

package com.demo.ExcelProject;

import java.io.File;

import org.apache.poi.sl.usermodel.Sheet;
import org.apache.poi.ss.usermodel.CellRange;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;

public class CreateResult {

    public static void main(String[] args) {
        try {
            //Create a workbook
            Workbook workbook = WorkbookFactory.create(new File("template.xlsx"));

            //Get the first worksheet
            CTWorksheet worksheet = (CTWorksheet) workbook.getSheetAt(0);
            
            //Find the text string "$"
            
            //Save the document to file
            workbook.savetoFile("output.xlsx");
        }
        catch(Exception e) {
            e.printstacktrace();
        }

    }

}

一些更亲的人,请指导我。

解决方法

好吧,您将需要迭代器来迭代 Row(这也需要 .next() )和迭代器来迭代单元格。当您迭代单元格时,您会使用 .next() 获得下一个单元格,它应该看起来像这样

Iterator<Row> iterator = inputSheet.iterator();
    while (iterator.hasNext()){
        Row nextRow = iterator.next();
        Iterator<Cell> cellIterator = nextRow.cellIterator(); 
        //iterator() or cellIterator() both ok
        while (cellIterator.hasNext()){
            Cell cell = cellIterator.next();
            String cellVal = cell.getStringCellValue();
            if (cellVal.startsWith("$")){
                //do something
            }
        }
    }