private void btnGetExcel_Click(object sender, EventArgs e)
        {
            try
            {
                Excel.Worksheet oldSheet = (Excel.Worksheet)xBook.Sheets[11];
                int k = 0;
                for (int w = 11; w < 88; w++)
                {
                    xSheet = (Excel.Worksheet)xBook.Sheets[w];
                    ExcelApp.AlertBeforeOverwriting = false;
                    xSheet.Copy(oldSheet, Missing.Value);
                }
                xBook.SaveAs(@"c:\bbb.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);                xBook.Close(false, Type.Missing, Type.Missing);
                ExcelApp.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
                xBook = null;
                xSheet = null;
                xRang = null;
                GC.Collect();
                MessageBox.Show("创建完成!");
            }
            catch(Exception ex)
            {
                xBook.Close(false, Type.Missing, Type.Missing);
                ExcelApp.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
                xBook = null;
                xSheet = null;
                xRang = null;
                GC.Collect();
                MessageBox.Show("创建失败!" + ex);
            }            
        }
问题是我复制到超过88张sheet就报错,小于88张复制都正常的~~请问这个问题如何解决?在线等!

解决方案 »

  1.   

    for (int w = 11; w < 88; w++)
                    {
                        xSheet = (Excel.Worksheet)xBook.Sheets[w];
                        ExcelApp.AlertBeforeOverwriting = false;
                        xSheet.Copy(oldSheet, Missing.Value);
                    }
    你不是用循环控制了吗??
      

  2.   

    1楼  我现在要创建140张表~~但是超过88就报错!oldSheet是模拟表,也就是模拟表开始的第78张!
      

  3.   

    错误的原因是:  System.Runtime.InteropServices.COMException(0x800A03EC) 异常来自 HRESULT:0x800A03EC   就是Copy那一行报错!!救命啦!
      

  4.   

    http://topic.csdn.net/u/20120119/17/098c518e-614c-4e42-8b3a-77bba7653a01.html
      

  5.   

    貌似表和行和列 在excel中都有限制的
      

  6.   

    大姐,你不会是复制多张表记录到一张EXCEL表吧Excel表的行数和列数是有个上限的。超过了肯定不能复制了
      

  7.   

    office 2007以前的版本都是有行数和列数限制的。以后就没有了。如果不是版本的问题,多半是内存的问题。因为微软的组件是把文件读取到内存,再操作的。所以可以考虑用文件流来解决。因为excel是可以用特殊符号来分隔行列的哈。比如TAB字符。
      

  8.   

    超过65535行就挂 了
    可考虑放置到多个Sheet中