我如何下载VSTO excel

我想完成以下任务。

  1. 我有一个Web应用程序,我将通过它调用VSTO应用程序,我必须在Excel工作簿的其中一张表中插入一些值

  2. 我将插入Excel表中的值,将不得不使用上传button上传到数据库。

到目前为止我做了什么。

  1. 我创build了一个networking应用程序 “C:\实例\ WebVSTO \ WebVSTO \ WebVSTO”

  2. 我创build了一个VSTO解决scheme。 “C:\实例\ VSTO2007 \ VSTO2007 \ VSTO2007.xlsx”

  3. 我将这些值插入到Excel表格中,如下所示:

    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(); objConn.Close(); 
  4. 我运行了Web应用程序,并观察到值插入到Excel中。

  5. 我从excel上传值,运行VSTO解决scheme,并将值上传到数据库。

问题

  1. excel(只有VSTO excel而不是整个解决scheme)将被放置在不同的文件夹中。 当我点击web应用程序中的下载button时,excel将被下载到客户端。

我面临着上述问题。 我如何回应

请让我知道。

提前致谢。

如果我理解正确,这个问题是一个相当普遍的问题:“我如何使一个文件不在可供下载的Web应用程序文件夹?

简单的方法是将二进制代码写入响应stream并设置一些头文件。

 HttpResponse.Clear(); HttpResponse.BufferOutput = false; HttpResponse.ContentType = "application/excel"; HttpResponse.AddHeader("content-disposition", "filename=VSTO2007.xlsx"); FileStream sourceFile = new FileStream(@"C:\Examples\VSTO2007\VSTO2007\VSTO2007.xlsx", FileMode.Open); long FileSize; FileSize = sourceFile.Length; byte[] getContent = new byte[(int)FileSize]; sourceFile.Read(getContent, 0, (int)sourceFile.Length); sourceFile.Close(); Response.BinaryWrite(getContent); 

我没有testing,但它应该工作。