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张复制都正常的~~请问这个问题如何解决?在线等!
{
xSheet = (Excel.Worksheet)xBook.Sheets[w];
ExcelApp.AlertBeforeOverwriting = false;
xSheet.Copy(oldSheet, Missing.Value);
}
你不是用循环控制了吗??
可考虑放置到多个Sheet中