如何将对象集合设置为一行,每个单元格一个对象?

时间:2014-01-14 16:29:30

标签: c# epplus

使用EPPlus,给定一组对象,如何在一行上设置对象,每个单元一个对象?

即,给定:

int rowNumber = ...
int columnNumber = ...
IEnumerable<object> values = ...

如何设置行rowNumber上的值,从列columnNumber开始,每个单元格一个值?

1 个答案:

答案 0 :(得分:2)

在范围内使用LoadFromArrays方法。应在行上设置数组值的第一个单元格用于创建范围。

传递给LoadFromArrays的参数是IEnumerable个对象数组,因此要在行上设置的values应首先转换为object[]然后包装为IEnumerable

int rowNumber = ...
int columnNumber = ...
IEnumerable<object> values = ...

var range = ws.Cells[rowNumber, columnNumber];
range.LoadFromArrays(AsEnumerable(values.ToArray())); 

/* ... */

// see http://stackoverflow.com/q/1577822/614800 for a discussion on how
// to wrap an object into an IEnumerable
private static IEnumerable<T> AsEnumerable<T>(T obj)
{
    yield return obj;
}