如何使用POI在java中的Excel中获取单元格的名称?

时间:2015-05-20 09:24:54

标签: java excel apache apache-poi

我正在尝试学习POI,我有一个示例代码。

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.ss.usermodel.CellValue;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;

public class ExpressionExample {

    public static void main(String[] args) throws Exception {

        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Sample sheet");
        Row row = sheet.createRow(0);
        FormulaEvaluator evaluator = workbook.getCreationHelper()
                .createFormulaEvaluator();
        HSSFCell formulaCell = (HSSFCell) row.createCell(6);
        HSSFCell c1 = (HSSFCell) row.createCell(1);
        HSSFCell c2 = (HSSFCell) row.createCell(2);
        c1.setCellValue(5);
        c2.setCellValue(10);
        CellReference cr1 = new CellReference(0 , 1); 

        String line = "if(A1>A2, \"LAR\" , if(5>10, \"AB\" , \"CD\"))";
        formulaCell.setCellFormula(line);

        CellValue cellValue = evaluator.evaluate(formulaCell);
        System.out.println(cellValue.getStringValue());
    }

}

现在在我的公式中我已经应用了单元格A1和A2的值,但是我想根据我的代码给出这个值,单元格应该是' C1和c2。任何想法怎么做?

这将是很好的帮助。

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确地提出了你的问题但是这里......

如果您想在公式中使用您要设置的值c1c2(在本例中为'5'和'10'),您可以创建2个int个对象来保存这些值:

int c1Value = 5;
int c2Value = 10;

然后,您可以使用这些对象来设置单元格值,并将它们包含在公式中:

c1.setCellValue(c1Value); 
c2.setCellValue(c2Value);

String line = "if(" + c1Value + ">" + c2Value + ", \"LAR\" , if(5>10, \"AB\" , \"CD\"))";

另请注意,代码中c1引用Excel中的单元格A2c2引用单元格A3。在Apache中,行和列都从0开始。

这是你想要做的吗?