簡體   English   中英

您能否根據 C# 中的 Excel 文件中的行動態創建變量?

[英]Can you dynamically create variables based on rows in an Excel file in C#?

我正在嘗試制作一個 C# 程序,該程序從 excel 文件中獲取坐標,因為每一列分別是 x、y、z 和 r,每一行都是不同的。 我希望能夠根據行數創建格式為 point0、point1 等的變量。

截至目前,我正在將每個單元格讀入一個數組,然后從該數組手動創建點。 在這種情況下,有 4 行和 4 個點(點 0 到 3)。 這暫時有效,但我必須想象有一種更簡單的方法可以做到這一點,或者至少有一些更動態的方法。 4分不是什么大問題,但可能還有更多。

        int rows = 4;

        for(int i = 0; i < 4; i++)
        {
           for(int j = 0; j < rows; j++)
           {
               points[i,j] = excel.ReadCell(i, j);
           }
        }
      
        for(int i = 0; i < 4; i++)
        {
            point0[0, i] = points[0, i];
        }

        for (int i = 0; i < 4; i++)
        {
            point1[1, i] = points[1, i];
        }

        for (int i = 0; i < 4; i++)
        {
            point2[2, i] = points[2, i];
        }

        for (int i = 0; i < 4; i++)
        {
            point3[3, i] = points[3, i];
        }

即使壓縮手動創建點的循環集也會節省時間,我只是不確定是否有辦法說諸如

       for(int i = 0; i < rows; i++)
       {
           for(int j = 0; j < cols; j++)
           {
               point+"i"[i,j] = points[i,j]
           }
       }

其中第 i 次迭代連接到變量名稱。

任何幫助將不勝感激,我對所有建議持開放態度(如果你不知道,我對 C# 很陌生)

我將定義一個 class 四個點的組合意味着什么。 不是基於它們存儲的行或列,而是它們實際代表的內容。

public class Shape
{
    public int Start { get; set; }
    public int End { get; set; }
    public int Mean { get; set; }
    public int Median { get; set; }
}

然后,當您遍歷每一行時,您可以同時創建和添加所有四個點。 像這樣的東西。

公共列表 GetShapesFromExcel() { var list = new List();

        int StartColumn = 'x';
        int EndColumn = 'y';
        int MeanColumn = 'z';
        int MedianColumn = 'r';

        foreach (var row in workSheet)
        {
            var shape = new Shape()
            {
                Start = excel.ReadCell(row, StartColumn);
                End = excel.ReadCell(row, EndColumn);
                Mean = excel.ReadCell(row, MeanColumn);
                Median = excel.ReadCell(row, MedianColumn);
            };
        
        }
    return list;
    }

我在黑暗中對您的數據實際代表的內容進行了瘋狂的嘗試,但我會花時間提前 go 並將其旋轉成真正的 object 以便在您編寫代碼時更容易推理。

像“I”和“J”這樣的變量在這種情況下沒有節省足夠的時間來發揮作用。

最后的建議是提前 go 並查看 package EPPlus。 package 能夠將行轉換為結構化類

看看這個開始。 如何使用 EPPlus 將 excel 行解析回類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM