我正在尝试将现有的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;
}
}
}