use*_*714 5 excel location reference cell openxml
根据OpenXml规范,CellReference是可选的.但是有没有另一种方法可以获得一个小区的位置?
例如,我可以通过以下方式获取行的单元格:
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
Console.WriteLine(c.CellReference);
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果没有CellReference,我如何知道细胞的位置?
我做了一些研究,所有解决方案似乎都依赖于将单元格的CellReference与给定的字符串进行比较.
CellReference是可选的,因为如果它缺失,Excel使用"先到先得"原则(顺便说一下,这不是官方术语).
当所有Cell类都缺少CellReference属性时会发生什么情况,Excel将根据遇到Row和Cell类的顺序进行解析.
第一行类(您将注意到RowIndex也是一个可选属性)将假定SheetData类具有行索引1.并且假定该行中的第一个Cell类具有CellReference"A1"(假设Cell没有分配CellReference).并且假定该行中的第二个Cell类具有CellReference"B1".等等等等.
下一个Row类(如果未分配RowIndex属性)将被假定为第二行.
基本上,如果缺少所有RowIndex和CellReference属性,则所有Cell类都会在工作表的左上角聚集在一起.
假设,如果你有3个未分配的RowIndex-ed Row类,而下一个Row类的RowIndex为8,那么这是一个有效的工作表.你只需要在工作表(如预期)第3行第3行数据,而"4"行类(为8的rowIndex)在工作表排8.
| 归档时间: |
|
| 查看次数: |
3064 次 |
| 最近记录: |