如何在 C# 中为 excel 创建字典

how to create Dictionary for excel in c#

我有 excel 这样的 :

ProductID SomeExplanation AnotherColumn1 AnotherColumn2 AnotherColumn3
1 X 6 A 65465
2 Y 5 B 6556
3 Z 7 C 65465

我想创建键值(ProductID、SomeExplanation、AnotherColumn1、AnotherColumn2、AnotherColumn3)的字典,并且该字典必须具有值列表(例如字典键:ProductId,它的值:1,2,3等..)而且我认为必须有包含所有词典的列表。

我正在为 excel 和 .net framework 4.5 使用 aspose 库。

Aspose 将其单元格值作为对象返回。

所以我的第一个问题是如何创建字典列表,这些字典必须有值列表 (List>) 以及如何向这个字典列表添加值?

我的第二个问题:我怎样才能用 aspose 工作表填写这个词典列表?

这是接受 Aspose Worksheet 作为参数的方法,此工作表参数可以是 excel 文件的工作表之一。

我想遍历所有单元格并为字典赋值,这个值属于它的 header(0 row and columnOrder)

例如:有一个名为 myExcelContainer 的列表,这个列表是一系列 Excel 列,而且这个列是一个包含键值的字典(Excel header - 例如 ProductId) 和 Excel header.

下的值 [1, 2, 3]
 public List<Dictionary<string, List<object>>> GenerateExcelDictionary(Worksheet worksheet)
        {
            var columnMax = worksheet.Cells.MaxDataColumn;
            var rowMax = worksheet.Cells.MaxDataRow;
            var myExcelContainer = new List<Dictionary<string, List<object>>>();
            var columnKeyWithValues = new Dictionary<string, List<object>>();
            for (int column = 0; column < columnMax; column++)
            {
                var columnName = worksheet.Cells[0, column].Value.ToString().Replace(" ", string.Empty);
                columnKeyWithValues.Add(columnName, new List<object>());
            }

            for (int column = 0; column < columnMax; column++)
            {
                var values = new List<object>();
                for (int row = 1;row < rowMax;row++)
                {
                    values.Add(worksheet.Cells[row, column]);
                }
                columnKeyWithValues[worksheet.Cells[0, column].Value.ToString()] = values;
            }
            myExcelContainer.Add(columnKeyWithValues);
            return myExcelContainer;
        }

这是 excel 容器:

var myExcelContainer = new List<Dictionary<string, List<object>>>();

但是如果你能提高我希望你分享的算法性能,请。

我的英语不是很好 :) .