下面是我在VS2003中寫的一段代碼,實現的功能是:將DataGrid中的數據導入到Excel中,供用戶下載,生成一個text.xls的文件。可是在VS2005裡面同樣的代碼,卻不能實現相同的效果,在VS2005裡面代碼能運行,可是彈出來的保存文件的對話框,保存的文件類型是XXX.aspx 文件,請問這是什麼原因呀,我胡代碼需要作那些修改?

解决方案 »

  1.   

    不好意思,忘記寫代碼了。
    protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Clear();        Response.Buffer = false;        Response.Charset = "GB2312";        Response.AppendHeader("Content-Disposition", "attachment:filename=test.xls");        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");        Response.ContentType = "application/ms-excel";        this.EnableViewState = false;        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();        System.Web.UI.HtmlTextWriter ohtmltextwriter = new System.Web.UI.HtmlTextWriter(oStringWriter);        this.DataGrid1.RenderControl(ohtmltextwriter);        Response.Write(oStringWriter.ToString());        Response.End();
        }
      

  2.   

    不过还有个问题,就是怎样在DataGrid中的某一列上调用Excel中的函数呢?
    举个例子哈:
     在DataGrid中有三列分别是:A,B,C.他们绑定的数据是int型的,现在A可以直接从数据库里面抓取获得数值,B,C:在将数据导入到DataGrid时全为0.现在调用上面的事件.将DataGrid中的数据导入到Excel中.
     现在在Excel中编辑B列,即输入数据. 
     要实现的功能就是在B列中输入数据后,就能自动执行一个减法运算:即:C=B-A.
    我知道在Excel中可以写一个函数进行运算,但是如果将这个函数,写到DataGrid中该怎样写呢?有没有谁遇到过这样的问题,你是怎样处理的呢?------------------------------------------
      

  3.   

    其实这种所谓转换利用了Excel强大的容错能力。它输出了一个格式错误的xls文件,然后Excel在打开这个文件时就会尽量修复它并装入工作表。既然如此,经常无法描述准确的格式,以及不能利用Excel的机制,也就自然而然地了。如果真正转换为Excel对象,请使用Excel(以及 Office)的 COM 接口的类库操纵,打开应用程序进程 ->创建工作簿->创建工作表->写数据->写格式->写公式->写脚本程序,一步步来。你甚至可以写一段VBA程序让它在客户机器上本地(以用户的权限)执行,甚至你可以把一个.exe程序通过这种程序让它在客户机器上执行。好在高版本的Excel在工作簿有程序代码的时候会有一个警告,但是很多人都把Excel上这个警告给设置掉了(让它不提示)。
      

  4.   

    我说的“一步步来”使用COM接口由程序写。包括向一个工作簿注入VBA程序的过程,都是用程序编写。
      

  5.   

    我有个问题请楼主帮忙
    我用<网际快车>的批量下载从网上下载网页资料进行编辑整理.下载的文件是  Company ASPX 文件  (全是这样K数不等的文件).如何导入excel表格中进行整理. 请楼主帮忙解决或者.非常感谢!!!