У меня есть рабочая книга с несколькими листами, и я пытался перебрать их, но это вызывает у меня проблемы. Код ниже выдает ошибку:
Microsoft.Office.Tools.Excel.Worksheet '. Эта операция завершилась неудачно, поскольку вызов QueryInterface для компонента COM для интерфейса с IID '{297DC8D9-EABD-45A1-BDEF-68AB67E5C3C3}' завершился ошибкой из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)) .
, но я не совсем понимаю, что это вообще значит.
Ошибка возникает при попытке присвоить переменной листа первый лист в моей переменной листов, который является просто рабочей книгой.
public List<Worksheet> GetAllDatasheets()
{
var datasheets = new List<Worksheet>();
var sheets = _book;
foreach (Worksheet sheet in sheets.Worksheets)
{
if (sheet.Name.StartsWith("$"))
datasheets.Add(sheet);
}
return datasheets;
}
РЕДАКТИРОВАТЬ: Вот мой полный код:
using Workbook = Microsoft.Office.Tools.Excel.Workbook;
using Worksheet = Microsoft.Office.Tools.Excel.Worksheet;
private Workbook _book;
public ExcelObjectDAL()
{
_book = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook);
}
public List<Worksheet> GetAllDatasheets()
{
var datasheets = new List<Worksheet>();
var sheets = _book;
foreach (var sheet in sheets.Worksheets)
{
var actualSheet = (Worksheet) sheet;
if (actualSheet.Name.StartsWith("$"))
datasheets.Add(actualSheet);
}
return datasheets;
}