excel 是否可以使用OLEDB插入公式?

qmelpv7a  于 2023-01-03  发布在  其他
关注(0)|答案(1)|浏览(110)

我已经成功地使用OLEDB创建了一个Excel文件(在第一次创建表格/工作表之后)。我想插入一个公式来计算成本(货币)单元格的总和,但找不到任何方法。
我尝试将公式插入到“成本”域中,如下所示,但收到无效数据类型错误,这是可以理解的:

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

有没有什么方法可以使用OLEDB来完成这个任务,或者我需要使用自动化?

rwqw0loc

rwqw0loc1#

您可以使用在列中包含公式的SQL查询,而在Excel中使用ADODB记录集来执行查询。
然后,您可以在 * range * 对象上使用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

相关问题