3

我已经使用 OLEDB 成功创建了一个 Excel 文件(在第一次创建表格/工作表之后)。我想插入一个对成本(货币)单元格求和的公式,但找不到任何这样做的技术。

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

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

有什么方法可以使用 OLEDB 做到这一点,还是我需要使用自动化?

4

1 回答 1

0

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

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

例如:

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

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

请参阅MSDN 库:使用 ADO.NET 将数据传输到工作表

于 2013-06-26T12:42:13.270 回答