Как получить значение Cell A1 (Cell Address), используя apache poi 3.6 - PullRequest
19 голосов
/ 25 ноября 2010

У меня есть адрес ячейки Excel, такой как A1, A2. Итак, как получить программный доступ к этой ячейке с помощью poi3.6

другой способ

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

Но у меня есть адрес в формате А1 ... так, как мне получить программный доступ к этим ячейкам

Ответы [ 4 ]

37 голосов
/ 25 ноября 2010
CellReference cr = new CellReference("A1");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());

Подробнее см. Краткое руководство .

6 голосов
/ 25 ноября 2010

Есть функция cellReference

* 1003 Е.Г. *

CellReference cellReference = new CellReference ("B3");

(взято из примера здесь)

0 голосов
/ 28 марта 2019

(код на Kotlin)

У вас есть 2 варианта указать адрес ячейки:

Вариант 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)

К сожалению, код не может быть проще, поскольку и Workbook, и *У 1014 * нет методов, которые возвращают ячейку с помощью CellReference или CellAddress.

Примечание: перегрузка 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 голосов
/ 02 июня 2016
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

...