这个问题让我完全不解。
我有一个可以很好加载的Excel文档。
它具有行,列和数据,我想遍历行。
但是EPPLus很奇怪。
我采取第二行:
ExcelRange range1 = worksheet.Cells[2, worksheet.Dimension.Start.Column, 2, worksheet.Dimension.End.Column];
这给了我
{A2:D2}
锦绣!到目前为止一切顺利,但是我想要该行的第一个单元格:ExcelRange range2 = range1[1,1];
这给了我
{A1}
,更糟糕的是,range1
的值也更改为{A1}
,而不是我选择的行。如何解决此问题并从ExcelRange中获取ExcelRange?
这让我完全不解..感谢您的帮助
最佳答案
如果查看ExcelRange
索引器后面的代码,您会看到get
实际上将设置基址(嵌套的else
):
public ExcelRange this[string Address]
{
get
{
if (_worksheet.Names.ContainsKey(Address))
{
if (_worksheet.Names[Address].IsName)
{
return null;
}
else
{
base.Address = _worksheet.Names[Address].Address;
}
}
else
{
base.Address = Address;
}
_rtc = null;
return this;
}
}
为什么我不确定为什么要这样做(我假设这里有一个实现细节)。但这可以解释为什么引用另一个地址会更改所选范围。因此,就像Benexx所说的,必须直接从
Cells
的Worksheet
集合中进行引用。关于c# - 来自ExcelRange的单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39039858/