web-dev-qa-db-ja.com

Apache poi 3.6を使用してA1(セルアドレス)のセル値を取得する方法

私はA1、A2のようなExcelセルアドレスを持っています。したがって、poi3.6を使用してプログラムでこのセルにアクセスする方法

別の方法は

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

しかし、私はA1の形式のアドレスを持っています...だから、プログラムでそれらのセルにアクセスするにはどうすればよいですか?

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

その他のサンプルについては、 クイックガイド を参照してください。

38
Neeme Praks

CellReference関数があります

例えば。

CellReference cellReference = new CellReference( "B3");

ここから取得)

6

(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)
_

残念ながら、WorkbookSheetの両方に、CellReferenceまたはCellAddressによってセルを返すメソッドがないため、コードを単純化することはできません。

注:MissingCellPolicyパラメーターを使用したgetCell()オーバーロードにより、より安全な方法でコードを記述できます。

_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")
_
1
Lu55
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);



        }
    }}

excelセルアドレスとして変数「ab」を置き換えます

0
Anand K G