如何在 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>>>();
但是如果你能提高我希望你分享的算法性能,请。
我的英语不是很好 :) .
我有 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.
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>>>();
但是如果你能提高我希望你分享的算法性能,请。
我的英语不是很好 :) .