2013-02-22 88 views
2

我已经使用OLEDB成功创建了一个Excel文件(在第一次创建表格/表格之后)。我想插入一个总结成本(货币)单元格的公式,但找不到任何技术来完成此操作。是否可以使用OLEDB插入公式?

我试图插入公式插入到成本字段,如下所示,但收到一个无效数据类型的错误,这是可以理解的:

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

是否有这样做使用OLEDB的任何方式或我将需要使用自动化?

+0

或许,这可能会有帮助:HTTP://www.java- samples [url] http://shacktutorial.php?tutorialid=1051 – 2013-02-23 08:02:23

+2

[Jet只提供数据集成](http://stackoverflow.com/questions/2624012/microsft-jet-oledb-connection-to-excel-loses-formulae)。 所以不可能插入公式。 – Alexander 2013-03-28 08:45:21

+0

这就是我所怀疑的。谢谢! – 2013-03-28 15:51:30

回答

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