本地调试过程中没问题!放到服务器上以后出现该错误!本地调试过程中数据列数比服务器时少,这点有影响吗?

解决方案 »

  1.   

     using (DAO.ClsDB dao = new DAO.ClsDB())
                    {
                        dt = dao.Sql4Select(databind(), null);
                        string[,] tp = new string[dt.Rows.Count, dt.Columns.Count];
                        for (int i1 = 0; i1 < dt.Rows.Count; i1++)
                        {
                            for (int i2 = 0; i2 < dt.Columns.Count; i2++)
                            {
                                tp[i1, i2] = dt.Rows[i1][i2].ToString();
                            }
                        }
                        Range c = ws.get_Range(ws.Cells[3, 1], ws.Cells[3 + dt.Rows.Count - 1, dt.Columns.Count]);
                        c.FormulaR1C1 = tp;                }部分代码
      

  2.   

    OFFICE 组件引用了?
    --reply by CSDN Study V1.0.0.3 (starts_2000)
      

  3.   

    服务器的Office版本和你开发时的一致吗?
    服务器要设置DCOM权限的,或者在应用程序池里面的标识改成本地系统
      

  4.   

    除了服务器上的office没激活外,其他都是一致的。
    DCOM权限设置过了,之前一个个写Cell时可以导出的,因为数据量比较大,全部导出时页面会卡死,所以采用数组作为中间变量,这点可能出错吗?
    应用程序池里面的标识刚改过试了下,还是一样的错误!
      

  5.   

    你可能是代码的问题了,。你可以试试
    tp[i1+1, i2+1] = dt.Rows[i1][i2].ToString();
      

  6.   

    看错了,不是数组的问题。你可以试试写一个简单数组,内容少点试试,是不是你的数组内容太多了?excel的行数、列数都有限制的
      

  7.   

    我是用wb.Save()保存的,这会带来问题吗?
      

  8.   

    在服务器的IIS上不知道咋调试
      

  9.   

    把config的debug=true打开,<customErrors mode="Off"/>
    让它显示错误黄页
      

  10.   

    服务器的Office版本和你开发时的一致
      

  11.   

    代码中将错误放入label中显示,所以这两选项都已是这样了,错误黄页显示不出来啊!
      

  12.   

     ///////////////////////////////下载Excel文件///////////////////////////////
                try
                {
                    string filename = MapCopyPath;
                    FileInfo fi = new FileInfo(filename);
                    Response.ContentType = "application/vnd.ms-excel";
                    Response.Charset = "";
                    Response.AddHeader("Content-Length", fi.Length.ToString());
                    string strHead = "attachment;filename=" + HttpUtility.UrlEncode(System.IO.Path.GetFileName(filename)) + "; size=" + fi.Length.ToString();
                    Response.AddHeader("Content-Disposition", strHead);                Response.WriteFile(filename);
                    Response.Flush();
                    File.Delete(filename);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                    Response.Close();
                }
                catch (Exception ee)
                {
                    logger.Error(ee);
                    lblMessage.Text = ee.Message + "[" + COMMON.ClsCommon.GetNowTimeHHMMSS() + "]";            }这是下载excel的代码
      

  13.   

    只要IIS里的bin文件夹下的Microsoft.Office.Interop.Excel.dll和office.dll的版本是12的,应该就是2007的吧
    仔细看了下,服务器上安装的office文件夹下有office12 和14文件夹 ,我的电脑上是10,11和12,我的系统是XP,服务器是Server 2003 ,这点有影响不?
      

  14.   

    看错了,Server 2003上还有个X86的安装文件夹,下面有11和12的