string filename = "XXXXXX-" + UserInfo.EmpName;            string m_ApplicationPath = Request.ApplicationPath;            //将模板文件copy到新位置,建议实际开发时用相对路径,如
            //Application.StartupPath.Trim() + "\\report\\normal.xls";            //判断是否复制成功   
            string m_newPath = change(System.Configuration.ConfigurationManager.AppSettings["oldPath"] + "normal_all.xls", filename);            if (string.IsNullOrEmpty(m_newPath))
            {
                return;
            }
            //打开复制后的文件            object missing = Missing.Value;            Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application();            //打开新文件
            myExcel.Application.Workbooks.Open(m_newPath, missing, missing, missing, missing,
            missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);            //将Excel显示出来
            myExcel.Visible = true;            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)myExcel.ActiveSheet;                myExcel.Cells[1, 1] = "XXX报表";                myExcel.Cells[2, 1] = "报表日期:" + DateTime.Today.ToString("yyyy年MM月dd日");                    //合并单元格
                    Microsoft.Office.Interop.Excel.Range rH = worksheet.get_Range("A" + (m_row1 + i * 4), "A" + (m_row2 + i*4));
                    rH.Merge(0);
                    rH.Font.Bold = true;//粗体
                    rH.Font.Size = 10;
                    rH.Cells.HorizontalAlignment = XlHAlign.xlHAlignCenter;
                    rH.Cells.VerticalAlignment = XlHAlign.xlHAlignCenter;                //将列标题和实际内容选中
                Microsoft.Office.Interop.Excel.Workbook myBook = myExcel.Workbooks[0];                //保存修改                myBook.Save();                myBook.Close(missing, missing, missing);                myExcel = null;                worksheet = null;
在本机调试的时候正常,将一个EXCEL模板复制到一个新的目录下,进行读写的操作。
在本机调试时,可以看到新复制的Excel被打开,数据被写入。
但是发布后,却看不到被打开的Excel,但是文件已经被复制到新目录下了。

解决方案 »

  1.   

    发布的机器是我的另一个台式机,所有开发环境都有,OFFICE2003都有
    开发用的VS2005和SQL2005
      

  2.   


    把dataset数据保存到excel
    public void CreateExcel(DataSet ds, string FileName)
        {
            HttpResponse resp;
            resp = Page.Response;
            resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
            string colHeaders = "", ls_item = "";
            //定义表对象与行对象,同时用DataSet对其值进行初始化
            DataTable dt = ds.Tables[0];
            DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
            int i = 0;
            int cl = dt.Columns.Count;
            //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
            for (i = 0; i < cl; i++)
            {
                if (i == (cl - 1))//最后一列,加n
                {
                    colHeaders += dt.Columns[i].Caption.ToString() + "\n";
                }
                else
                {
                    colHeaders += dt.Columns[i].Caption.ToString() + "\t";
                }
            }
            resp.Write(colHeaders);
            //向HTTP输出流中写入取得的数据信息
            //逐行处理数据 
            foreach (DataRow row in myRow)
            {
                //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据  
                for (i = 0; i < cl; i++)
                {
                    if (i == (cl - 1))//最后一列,加n
                    {
                        ls_item += row[i].ToString() + "\n";
                    }
                    else
                    {
                        ls_item += row[i].ToString() + "\t";
                    }
                }
                resp.Write(ls_item);
                ls_item = "";
            }
            resp.End();
        }
      

  3.   

    大概是什么环境问题呢?
    我的笔记本是VISTA系统,开发环境全,OFFICE2003
    发布的机器是XP,开发环境全,OFFICE2003
      

  4.   

    比较感谢楼上的朋友,但是这个EXCEL格式比较复杂,还有N张图片在,所以打算用复制读写的方式。
    不知道我的代码有问题否,从网上找的。
      

  5.   

    服务器端是否有操作excel权限,路径是否有权限
      

  6.   

    小弟的问题更纠结,程序跑没事,发布版转义字符居然无效了,崩溃啊:
    错误信息如下无法找到“C:\TaxWebTemp\\01029217基本信息2009-11-21.xls”。请检查文件名的拼写,并检查文件位置是否正确。如果您正试图从“文件”菜单上最近使用的文件列表中打开文件,请确认文件未被重命名、移动或删除。