2011-01-23 48 views
1

我想完成以下任务。如何下载VSTO excel

  1. 我有一个web应用程序,通过它,我将调用一个VSTO应用,我在Excel工作簿

  2. 我将在被插入的值的片材之一插入一些值Excel工作表,并且必须使用上传按钮上传到数据库。

到目前为止我做了什么。

  1. 我创建了一个web应用程序解决方案。 “C:\ Examples \ WebVSTO \ WebVSTO \ WebVSTO”

  2. 我创建了VSTO解决方案。 “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. 我通过运行VSTO解决方案和上传到数据库的值上传excel中的值。

问题

  1. 了Excel(只有VSTO Excel和不是整个溶液)将被放置在不同的文件夹。当我点击网络应用中的下载按钮时,excel将被下载到客户端。

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

请让我知道。

在此先感谢。

+0

对不起,我不明白这个问题 - 你想让用户下载Excel文件?你如何设置下载,哪些不起作用?或者是您不能再更新Excel文件的问题?您还正在使用VSTO从Web应用程序修改Excel电子表格:我不确定在服务器上下文中运行VSTO实际上是否受支持,因此您可能会遇到问题。 – Rup 2011-01-23 17:22:51

+0

1.是的,我将允许用户下载Excel文件。 2.我没有设置下载,问题在这里。 3. VSTO应用程序存储在例如。 C:\ VSTO.sln,其包括三个excel工作表(都在一个单一工作簿),并且它的编码。我应该把工作簿放在c:\ DownloadExcel中。 5.用户必须下载放置在c:\ DownloadExcel中的excel。 – cmrhema 2011-01-25 02:51:53

回答

1

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

执行此操作的简单方法是将二进制代码写入响应流并设置一些标题。

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); 

我没有测试它,但它应该工作。