0

こんにちは、私の解決策をインターネットで調べていました。Excel シートを配列と見なして、行と列のインデックスに基づいてデータを取得したいのですが、どうすればよいですか。私はこれを実装するための手がかりを得ていません 私のExcelシートは以下のようになります

これを手伝ってください。私はさまざまな方法を試すことに腹を立てています。

私の要件は、コンソールで R3,C2 を指定した場合、答えとして 4 を取得する必要があることです。これを取得するために Excel.interop を使用していましたが、他の方法でも解決策を提案できます。期待して感謝します。

4

2 に答える 2

0

1 つの解決策は、Excel ワークシート関数 INDEX および MATCH を呼び出すことです (基本的な Excel 式は =INDEX($B$2:$D$4,MATCH("R3",$A$2:$A$4,0),MATCH(" C2",$B$1:$D$1,0))

または、データをオブジェクト配列に取得して、最初の行で C2 を探し、最初の列で R3 を探すこともできます。

于 2012-10-17T10:05:29.337 に答える
0
using System;
using Excel=Microsoft.Office.Interop.Excel;

namespace ReadingExcelBasedOnRowColumn
{


    class Program
    {
        static void Main(string[] args)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:\Users\SaiKiran\Desktop\MyExcl2.xlsx");
            Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
            Excel.Range xlRange = xlWorksheet.UsedRange;
            Console.WriteLine("enter x and y value:");
            int x = Convert.ToInt32(Console.ReadLine());
            int y = Convert.ToInt32(Console.ReadLine());
            if (xlRange != null)
            {
                int nRows = xlRange.Rows.Count;
                int nCols = xlRange.Columns.Count;
                for (int iRow = 1; iRow <= nRows; iRow++)
                {

                    for (int iCount = 1; iCount <= nCols; iCount++)
                    {   

                        xlRange = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[x, y];
                        Console.WriteLine(xlRange.Text);
                        Console.ReadLine();
                    }
                }

            }

        }
    }
}

私は答えを得た.. 2日間苦労した後

于 2012-10-19T17:28:36.047 に答える