org - Cómo obtener el valor de celda de A1(dirección de celda) usando apache poi 3.6
apache poi tutorial español (4)
(Código en Kotlin)
Tienes 2 opciones para especificar la dirección de la celda:
Opción 1: por CellReference
(que puede contener referencia al nombre de la hoja):
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())
Opción 2: por CellAddress
(que solo puede contener referencia en la celda dentro de una hoja):
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)
Desafortunadamente, el código no puede ser más sencillo porque tanto el Workbook
como la Sheet
no tienen métodos que devuelvan las celdas por CellReference
o CellAddress
.
Nota: la sobrecarga de getCell()
con el parámetro MissingCellPolicy
permite escribir código de una manera más segura:
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")
Tengo Excel Cell Address como A1, A2. Entonces, ¿cómo acceder a esta celda mediante programación poi3.6?
otra forma es
row=mySheet.getRow();
cell=row.getCell();
Pero tengo la dirección en el formato A1 ... entonces, ¿cómo accedo a esas celdas de manera programática?
Hay una función de referencia de celda
P.ej
CellReference cellReference = nueva CellReference ("B3");
(tomado del example aquí)
CellReference cr = new CellReference("A1");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());
Consulte la Guía rápida para obtener más muestras.
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);
}
}}
Reemplace la variable ''ab'' como su dirección de celda de Excel