从表中查找值并用数据填充的正确方法

jth*_*h41 6 c# excel vlookup data-structures

我目前的项目基本上是将Excel电子表格转换为Windows应用程序.我使用表和vlookups遇到了工作表的一部分.假设该表看起来像这样(完全相同,每个季度都添加一个额外的行):

在此输入图像描述

我想模仿C#中的vlookups,我可以想到几种不同的方式,但我正在寻找"最好"的方式.通过"最好",我的意思是最容易编码和最易维护,我不是指速度,如果它在10秒内工作就足够了.这发生在一个方法中,该方法具有区域名称和Yr/Qrt作为字符串传入.使用这些,我应该使用什么数据结构来存储表数据,如何以最少的代码执行?

编辑

我现在收到了我将从中提取此数据的实际excel文件.关于如何仅使用C#获取"yearQtr"字段和HRTC字段的任何建议将不胜感激

编辑

刚发现他们运行这个应用程序的机器不会有excel.所以上面显示的文件在读入应用程序之前必须更改为另一种格式(这将通过手动将文件从excel保存为csv或xml或任何格式来处理.所以我想我的问题是如何获取csv或xml中的上述数据

jth*_*h41 1

我目前正在使用这个架构解决方案来满足我的数据需求。我每次需要时都会创建一个新表(就像我在问题中所说,速度并不重要)。该表仅适用于每个表的特定区域。如您所知,我还没有弄清楚 Excel 数据提取部分。

class Table
    {
        Dictionary<String, double> _regionTimeValues;
        String _region;

        public Table(String region)
        {
            _regionTimeValues = new Dictionary<string, double>();
            _region = region;
            suckInValues();
        }

        private void suckInValues()
        {
            //Go find the File, get the appropriate Values
            //for each value found
        }


        internal double locateRelevantValue(string yearQuarter)
        {
            double locatedValue = 0.0;
            _regionTimeValues.TryGetValue(yearQuarter,out locatedValue);
            return locatedValue;

        }
    }
Run Code Online (Sandbox Code Playgroud)