C# OleDb插入Excel文件跳过“;“空的”;排

C# OleDb插入Excel文件跳过“;“空的”;排,c#,excel,oledb,C#,Excel,Oledb,我正在努力将OleDb insert命令插入Excel文件。它跳过过去删除的行 在我的C#代码中,我通过OledDb命令进行了以下插入调用 cmd.CommandText = "INSERT INTO [input$] ([RowName], [RowValue]) VALUES ('blah', 'super blah')"; cmd.ExecuteNonQuery(); 在此之后,插入表如下所示: RowName | RowValue blah | super blah

我正在努力将OleDb insert命令插入Excel文件。它跳过过去删除的行

在我的C#代码中,我通过OledDb命令进行了以下插入调用

cmd.CommandText = "INSERT INTO [input$] ([RowName], [RowValue]) VALUES ('blah', 'super blah')";
cmd.ExecuteNonQuery();
在此之后,插入表如下所示:

RowName | RowValue
blah    | super blah
        | 
到目前为止还不错。用户从此表中删除值时出现问题(按Delete键)。当我在同一个表中调用另一个insert时,我希望将值插入第一个空行(在本例中,它应该是第1行),但实际上它将值插入第二行

插入命令:

cmd.CommandText = "INSERT INTO [input$] ([RowName], [RowValue]) VALUES ('blah2', 'weak blah')";
cmd.ExecuteNonQuery();

// Expected result:
RowName | RowValue
blah2   | weak blah
        | 

// Actual result
RowName | RowValue
        | 
blah2   | weak blah

有没有办法(不使用ID行和使用更新而不是插入)修复此错误?

可能与Excel@Steve good point/文章的这一众所周知的行为有关,但不幸的是,它没有提供任何信息,如何从C代码(仅通过VBA宏)和使用oleDb修复此问题。是的,我知道,这就是我没有发布答案的原因。为了检查这是否是问题所在,您可以将宏添加到工作表中,运行宏,然后重新测试应用程序。如果问题消失了,这就是问题所在,但据我所知,您需要使用COM Interop从您的网络应用程序运行相同类型的宏。现在不太复杂了,您可以直接在应用程序中捆绑互操作类型,但这取决于您的需求。如果宏修复了该问题,您可以在此网站上搜索“修复excel使用范围”