我在C#中有一个web应用程序,我将调用VSTO 2003.它工作正常。我想要应用程序的url,以便我可以连接到Web服务。目前我已经在Sheet1_Startup方法中对webservice url进行了硬编码。但是url会被更改,所以我需要一种动态获取url的方法。 那是当我调用VSTO时,我希望将URL放在Excel中的一个单元格中 要么 是否有任何方法可以从我的Web应用程序将查询字符串传递给VSTO 2003应用程序。
请帮忙。
@ RobertG5
我在我的网络应用程序中编写了代码,如下所示
System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Examples\VSTO2007\VSTO2007\VSTO2007.xlsx" +
";Extended Properties=Excel 8.0;");
objConn.Open();
System.Data.OleDb.OleDbCommand objCmd = new System.Data.OleDb.OleDbCommand();
objCmd.Connection = objConn;
objCmd.CommandText = "Insert into [Sheet1$]" +
" values ('Test')";
objCmd.ExecuteNonQuery();
// Close the connection.
objConn.Close();
并且值确实已插入到vsto excel表中。 现在我该如何下载这个excel。
此致 cmrhema
答案 0 :(得分:0)
预警,您不应该在Web服务器环境中通过VSTO访问Excel。您将遇到各种线程问题,主要是因为Excel是一个单线程应用程序,您在多线程环境中访问它。
但我仍然可以回答你的问题。如果要shell到Excel,可以将自己的自定义命令行参数传递给它。只要确保它不与任何Excel的命令行参数冲突(例如/ x:myargument)。您需要对其进行编码,使其不包含任何与参数协议冲突的特殊字符(例如base64)。加载加载项后,您可以检查参数并使用它执行您喜欢的操作(Environment.GetCommandLineArgs())。 或者您可以通过COM简单地实例化Excel并将值戳入单元格: http://support.microsoft.com/kb/302096