如何使用Apache POI 3.6获取A1单元格地址的单元格值

26

我有一个像A1、A2这样的Excel单元格地址,那么如何使用poi3.6编程方式访问这个单元格呢?

另一种方法是什么?

 row=mySheet.getRow();
 cell=row.getCell();

但是我有以A1格式表示的地址...那么,我如何通过程序访问这些单元格呢?

4个回答

45
CellReference cr = new CellReference("A1");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());

请查看快速指南以获取更多示例。


5

有一个cellReference函数

例如:

CellReference cellReference = new CellReference("B3");

(摘自这里的示例)


3

(Kotlin代码)

您有两种选项来指定单元格地址:

选项1:使用CellReference(可以包含对工作表名称的引用):

val cellReference = CellReference("SheetName!C11")

val sheet = workbook.getSheet(cellReference.sheetName)
val row = sheet.getRow(cellReference.row)
val cell: Cell = row.getCell(cellReference.col.toInt())

选项2:通过CellAddress(仅限于对工作表内的单元格进行引用):
val sheetName = "SheetName"
val cellAddress = CellAddress("C11")

val sheet = workbook.getSheet(sheetName)
val row = sheet.getRow(cellAddress.row)
val cell: Cell = row.getCell(cellAddress.column)

很遗憾,代码无法更简单,因为WorkbookSheet都没有返回CellReferenceCellAddress的方法。

注意:getCell()重载以MissingCellPolicy参数允许更安全地编写代码:

val cell: Cell? = row.getCell(cellAddress.column, Row.MissingCellPolicy.RETURN_BLANK_AS_NULL)
return cell ?: throw UnexpectedExcelStructureException("Unable to find $cellAddress cell on the $sheetName sheet or cell is empty")

0
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] ar)
        {
            // char a = 'A', b = 'B';
            //string[] ab = new string[100];
            //ab[0]= "A1";
            int k = 0, h = 0; ;
            string ab = "B1";
            int l;
            l = Convert.ToInt32(ab.Length.To String());

            for (int i = 0; i < l; i++)
            {
                if(!char.Is Digit(ab[i]))
                { 
                for (int j = 65; j <= 90; j++)
                {
                if(Convert.ToInt32(ab[i])==j)
                    {
                        break;
                    }
                else
                    {
                        k = 1-k;
                    }

                }

            }
                else
                {
                    h = (Convert.ToInt32(ab[i]))-49;

                }
                }

            Console.Write Line(l);
            Console.Write Line(h+""+k);



        }
    }}

将变量'ab'替换为您的Excel单元格地址


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接