Вхідний виділити метод в C #

Я намагався отримати наступний код у C# для вилучення зображення, але я отримую, як показано нижче:

Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();

            Microsoft.Office.Interop.Word.Document oDoc = new Microsoft.Office.Interop.Word.Document();

 oDoc = oWord.Documents.Open(ref str1......);

oDoc.InlineShapes.Select();

Помилка:

oDoc.InlineShapes.Select();
The requested member of the collection does not exist.

Будь ласка, дайте мені знати, що може бути неправильним з цією лінією?

0

1 Відповіді

Наскільки я можу сказати, колекція InlineShapes не має голого методу Select() . Тому я припускаю, що ви намагаєтеся використовувати linq у колекції.

InlineShapes is an implementation of IEnumerable which does not have a Select(...) method.

Я підозрюю, що вам потрібно це зробити

// Note the select is spurious here
oDoc.InlineShapes.OfType().Select((shape) => shape)

OfType() returns an IEnumerable which does support the Select(...) method.

Розглянемо, що якщо IEnumerable було розширено за допомогою Select (...) , то в коді Object не буде корисних властивостей для використання .

EDIT

Якщо ви хочете отримати зображення з InlineShapes, ви можете ...

 var pictures = oDoc.InlineShapes.OfType().Where(s =>
    s.Type = WdInlineShapeType.wdInlineShapePicture ||
    s.Type = WdInlineShapeType.wdInlineShapeLinkedPicture ||
    s.Type = WdInlineShapeType.wdInlineShapePictureHorizontalLine ||
    s.Type = WdInlineShapeType.wdInlineShapeLinkedPictureHorizontalLine);

 foreach(var picture in pictures)
 {
     picture.Select();
     oWord.Selection.Copy()

     //Then you need to retrieve the contents of the clipboard
     //which I feel is another question.
 }

Це має надати вам набір усіх вбудованих форм у документі, які мають зображення.

2
додано
Ваша логіка не вибирає зображення у файлі документа.
додано Автор fawad, джерело
Неправильний термін експресії "є"
додано Автор fawad, джерело
Але я складаю його та отримую помилки
додано Автор fawad, джерело
Я використовую Visual Studio 2010, і він дає червону лінію в "WdInlineShapeType.wdInlineShapePicture"
додано Автор fawad, джерело
спробуйте це, я сам не склав цей код, просто написав його, щоб, сподіваюсь, допомогти вам у правильному напрямку.
додано Автор Jodrell, джерело
яку версію .net ви використовуєте і які помилки ви отримуєте?
додано Автор Jodrell, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug