C# 复制excel工作表时,HRESULT异常:0x800A03EC

C# 复制excel工作表时,HRESULT异常:0x800A03EC,c#,excel,vsto,C#,Excel,Vsto,我正在尝试将现有excel工作表复制到当前excel文件中。我正在使用这个代码 Workbook wkActive = Globals.ThisAddIn.Application.ActiveWorkbook; Microsoft.Office.Interop.Excel.Workbook workbook = Globals.ThisAddIn.Application.Workbooks.O

我正在尝试将现有excel工作表复制到当前excel文件中。我正在使用这个代码

                            Workbook wkActive = Globals.ThisAddIn.Application.ActiveWorkbook;
                        Microsoft.Office.Interop.Excel.Workbook workbook = Globals.ThisAddIn.Application.Workbooks.Open(IdsTemplatePath, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, false, false);
                        Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Sheets[1] as Microsoft.Office.Interop.Excel.Worksheet;
                        worksheet.Copy(Type.Missing, wkActive);
                        wkActive.Save();
但在复制方法中,我得到了错误

Exception from HRESULT: 0x800A03EC
我做错了什么以及我应该做什么来完成我的任务我得到了解决方案

Microsoft.Office.Interop.Excel.Workbook CurrentWk 
    = ((Microsoft.Office.Interop.Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook);
if (Path.GetExtension(CurrentWk.Name) != ".xlsx")
{
    MessageBox.Show("Please save the document before complete this task", "warning");
}
else
{
    Microsoft.Office.Interop.Excel.Workbook workbook = Globals.ThisAddIn.Application.Workbooks.Open(IdsTemplatePath, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, false, false);
    Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
    totalSheet = workbook.Worksheets.Count;
    for (int sheetNum = 1; sheetNum <= totalSheet; sheetNum++)
    {
        worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[sheetNum];
        sheetname = worksheet.Name.Replace("\r", "").Replace("\a", "").Trim().ToLower();
        if (sheetname == "ids_template")
        {
            try
            {
                worksheet.Copy(CurrentWk.Sheets[1]);
                workbook.Close(SaveChanges, Type.Missing, Type.Missing);
            }
            catch { }
            ids_template_found = true;//here it is set true because template sheet is added above in current workbook.
            break;
        }
    }
}
Microsoft.Office.Interop.Excel.Workbook CurrentWk
=((Microsoft.Office.Interop.Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook);
if(Path.GetExtension(CurrentWk.Name)!=“.xlsx”)
{
MessageBox.Show(“请在完成此任务之前保存文档”,“警告”);
}
其他的
{
Microsoft.Office.Interop.Excel.Workbook Workbook=Globals.ThisAddIn.Application.Workbook.Open(IdsTemplatePath,0,true,5,“,”,true,XlPlatform.xlWindows,“\t”,false,false,0,true,false,false);
Microsoft.Office.Interop.Excel.Worksheet工作表=空;
totalSheet=workbook.Worksheets.Count;
对于(int sheetNum=1;sheetNum我得到了解决方案

Microsoft.Office.Interop.Excel.Workbook CurrentWk 
    = ((Microsoft.Office.Interop.Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook);
if (Path.GetExtension(CurrentWk.Name) != ".xlsx")
{
    MessageBox.Show("Please save the document before complete this task", "warning");
}
else
{
    Microsoft.Office.Interop.Excel.Workbook workbook = Globals.ThisAddIn.Application.Workbooks.Open(IdsTemplatePath, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, false, false);
    Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
    totalSheet = workbook.Worksheets.Count;
    for (int sheetNum = 1; sheetNum <= totalSheet; sheetNum++)
    {
        worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[sheetNum];
        sheetname = worksheet.Name.Replace("\r", "").Replace("\a", "").Trim().ToLower();
        if (sheetname == "ids_template")
        {
            try
            {
                worksheet.Copy(CurrentWk.Sheets[1]);
                workbook.Close(SaveChanges, Type.Missing, Type.Missing);
            }
            catch { }
            ids_template_found = true;//here it is set true because template sheet is added above in current workbook.
            break;
        }
    }
}
Microsoft.Office.Interop.Excel.Workbook CurrentWk
=((Microsoft.Office.Interop.Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook);
if(Path.GetExtension(CurrentWk.Name)!=“.xlsx”)
{
MessageBox.Show(“请在完成此任务之前保存文档”,“警告”);
}
其他的
{
Microsoft.Office.Interop.Excel.Workbook Workbook=Globals.ThisAddIn.Application.Workbook.Open(IdsTemplatePath,0,true,5,“,”,true,XlPlatform.xlWindows,“\t”,false,false,0,true,false,false);
Microsoft.Office.Interop.Excel.Worksheet工作表=空;
totalSheet=workbook.Worksheets.Count;

对于(int sheetNum=1;sheetNum为什么要传递
Readonly
true
并将
Converter
从0更改为1。为什么要传递
Readonly
true
并将
Converter
从0更改为1。