1. 程式人生 > >C#實戰012:Excel操作-獲取Excel某一行資料並存入陣列

C#實戰012:Excel操作-獲取Excel某一行資料並存入陣列

      前面獲取了Excel某一列資料並存入陣列,接著我們繼續獲取Excel某一行資料並存入陣列,方法基本一致,就一點小小的改動,以下是完整的程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using System.Diagnostics;
using System.Reflection;

namespace ConsoleApplication3
{
    class EditExcel
    {
        #region  獲取Excel某行資料
        /// <summary>
        /// 獲取Excel某行資料
        /// </summary>
        public List<string> RowDB = new List<string>();
        public void getRowDB(string ExcelName)
        {
            //建立 Excel物件
            Application App = new Application();
            //獲取缺少的object型別值
            object missing = Missing.Value;
            //開啟指定的Excel檔案
            Workbook openwb = App.Workbooks.Open(ExcelName, missing, missing, missing, missing,
                missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            //獲取選選擇的工作表
            Worksheet ws = ((Worksheet)openwb.Worksheets["Sheet1"]);//方法一:指定工作表名稱讀取
            //Worksheet ws = (Worksheet)openwb.Worksheets.get_Item(1);//方法二:通過工作表下標讀取
            //獲取工作表中的行數
            int rows = ws.UsedRange.Rows.Count;
            //獲取工作表中的列數
            int columns = ws.UsedRange.Columns.Count;
            Console.WriteLine("請輸入你要獲取哪行資料:");
            int row = Convert.ToInt16(Console.ReadLine());
            //提取對應行列的資料並將其存入陣列中
            for (int i = 1; i < columns; i++)
            {
                string a = ((Range)ws.Cells[row, i]).Text.ToString();
                Console.WriteLine("讀取的資料:" + a);//測試是否獲得資料
                RowDB.Add(a);
            }
            //遍歷陣列
            foreach (string db in RowDB)
            {
                Console.WriteLine("列表中的資料" + db);//檢視陣列中的資料,測試是否儲存成功
            }
            Console.ReadLine();
            App.DisplayAlerts = false;//不現實提示對話方塊
            openwb.Close(false, missing, missing);//關閉工作表
            App.Quit();//退出Excel
        }
        #endregion

    }
}

改動的部分,方法簡單好記:

public List<string> RowDB = new List<string>();

Console.WriteLine("請輸入你要獲取哪行資料:");
int row = Convert.ToInt16(Console.ReadLine());
//提取對應行列的資料並將其存入陣列中
for (int i = 1; i < columns; i++)
{
    string a = ((Range)ws.Cells[row, i]).Text.ToString();
    Console.WriteLine("讀取的資料:" + a);//測試是否獲得資料
    RowDB.Add(a);
}