是否可以使用OLEDB插入配方?

时间:2013-02-22 19:12:34

标签: vb.net excel oledb excel-formula

我已经使用OLEDB成功创建了一个Excel文件(在首次创建表/表之后)。我想插入一个公式,该公式总结了一个Cost(货币)单元格但却找不到任何相关技术。

我已尝试将公式插入Cost字段,如下所示,但收到无效的数据类型错误,这是可以理解的:

cmd.Parameters.Add("P0", OleDbType.PropVariant).Value = "=SUM(K2:K5)"
cmd.CommandText = "INSERT INTO  [" & ExcelTableName & "] (Cost) VALUES(P0);"
cmd.ExecuteNonQuery()

有没有办法使用OLEDB这样做,还是需要使用自动化?

1 个答案:

答案 0 :(得分:0)

您可以使用包含列中公式的SQL查询,并在Excel中使用ADO DB Recordset来执行查询。

然后,您将使用范围对象上的 CopyFromRecordset 方法将结果集转储到包含公式的Excel中。

例如:

sQry="Select fields, '=IF(A:A>=B:B, ''''Good'''', ''''Bad'''') from table where criteria'
xlApp.Range("A1").CopyFromRecordset oRs

这也可以从.NET完成,只是不同......

请参阅MSDN Library: Transfer data to a worksheet by using ADO.NET