Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于单列值跳过记录,而不遍历每一行openxml c#_C#_Excel_Openxml - Fatal编程技术网

基于单列值跳过记录,而不遍历每一行openxml c#

基于单列值跳过记录,而不遍历每一行openxml c#,c#,excel,openxml,C#,Excel,Openxml,我有如下结构的excel文件: ColA | ColB | ColC | ColD | ColE | ColF | ColG 1 | a | a | 23 | 12 | asd | 5 2 | s | v | 73 | 14 | qsd | 7 4 | t | b | 52 | 52 | avn | 2 | y | t | 13 | 71 | asx | 2 5 |

我有如下结构的excel文件:

ColA | ColB | ColC | ColD | ColE | ColF | ColG
 1   |  a   |  a   |  23  |  12  | asd  |  5
 2   |  s   |  v   |  73  |  14  | qsd  |  7
 4   |  t   |  b   |  52  |  52  | avn  |  
 2   |  y   |  t   |  13  |  71  | asx  |  2
 5   |  d   |  e   |  20  |  18  | vss  |  
 1   |  f   |  n   |  63  |  72  | ann  |  
 9   |  g   |  a   |  27  |  10  | aqz  |  15
我只想读取并获取那些在
ColG
中没有值的行。 我可以使用以下代码迭代每行并匹配每行的每个单元格值:

for (int i = 0; i < rows.Count(); i++)
{
    DataRow dataRow = dataTable.NewRow();
    int cellCounter = 0;
    foreach (Cell cell in rows.ElementAt(i))
    {
      dataRow[cellCounter] = GetCellValue(spreadSheetDocument, cell);
      cellCounter++;
    }
    dataTable.Rows.Add(dataRow);
}
for(int i=0;i
但这是一个非常耗费内存和时间的过程

谁能帮我实现同样的目标


提前感谢。

您使用的是
数据表
,因此肯定会有高内存消耗。你怎么填桌子?使用SQL适配器?我没有看到您使用
DocumentFormat.OpenXML
中的
Cell
Row
,所以您真的想要使用OpenXML或SQLAdapter+DataTables的解决方案吗?这只是整个逻辑中的一段代码。我想让它成为使用OpenXML的解决方案。然后展示您使用OpenXML的尝试以及您在使用OpenXML时遇到的困难。上面对
数据表
的每一行都进行了迭代。如果有条件要检查,可以放入
if
语句。我不明白什么是直接过滤,如何在不检查所有元素的情况下进行过滤。为了获得更好的帮助,您可能应该编辑您的问题和标签。这与OpenXML无关。