C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■88223 / )  c# エクセルのセル範囲を1次配列に格納する方法
□投稿者/ ユウタ (1回)-(2018/08/09(Thu) 22:06:57)

分類:[C#] 

forを使わずにエクセルのセル範囲をstring型で1次配列に格納したいのですが、可能でしょうか。
(大量の値を格納するためforだと処理が遅くなるため高速化したいです)

以下コードの場合、Console.WriteLineでは「System.__ComObject」と出力されてしまいます。
AAA.xlsxには、1列目に5000行目まで文字列が入っています。

using System;
using System.Linq;
using usgExcel = Microsoft.Office.Interop.Excel;

namespace Test_エクセルを1次配列化
{
    class Program
    {
        static void Main(string[] args)
        {
            string FilePath = @"C:\AAA.xlsx";
            
            usgExcel.Application myExcel = new usgExcel.Application();
            myExcel.Visible = true;
            usgExcel.Workbook myWorkBook = null;

            myWorkBook = myExcel.Workbooks.Open(FilePath); 
            usgExcel.Worksheet myWorkSheet =  myWorkBook.Sheets["Sheet1"];            
            usgExcel.Range myRange = myWorkSheet.Range[myWorkSheet.Cells[1, 1], myWorkSheet.Cells[5000, 1]];
            object[] myRangeObj = (myRange).Cast<object>().ToArray();

            Console.WriteLine(Convert.ToString(myRangeObj[1]));
            Console.WriteLine(Convert.ToString(myRangeObj[2]));
            Console.WriteLine(Convert.ToString(myRangeObj[3]));
            Console.ReadKey();
        }
    }
}

返信 編集キー/


管理者用

- Child Tree -