Как получить индекс smartart из существующего документа word с помощью word interop C#
Дорогие Все,
Я хочу оценить форму smartart, которая уже вставлена в существующий документ word. Где документ содержит n количество фигур smartart.
Я уже искал в google по этому поводу, но не нашел подходящего.
Пожалуйста, ознакомьтесь с моим кодом....
Что я уже пробовал:
public static bool EvaluateSmartArtShape(IQuestion question, string filename, SmartArtShapes _smartArtShape) { WordInterop.Application wordApplication = GetOrCreateWordApplication(question.ObjectStore); try { //Avoid screen flickering or unwanted alerts while initializing wordApplication.ScreenUpdating = false; WordInterop.WdAlertLevel displayAlertLevel = wordApplication.DisplayAlerts; wordApplication.DisplayAlerts = WordInterop.WdAlertLevel.wdAlertsNone; WordInterop.Document wordDocument = wordApplication.Documents.Open(filename); //WORD WordInterop.Shapes ws = wordDocument.Shapes; foreach(WordInterop.Shape s in ws) { if (s.HasSmartArt == MsoTriState.msoTrue) { if (s == wordApplication.SmartArtLayouts[(int)_smartArtShape])//line 697 { return true; } } } wordDocument.Close(); } catch (Exception ee) { string strError = ee.ToString(); Cleanup(question.ObjectStore, true); } return false; }
Ошибка:
System.Runtime.InteropServices.COMException (0x80010105): The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) at Microsoft.Office.Core.SmartArtLayouts.get_Item(Object Index) at TeTec.Action.Office2013.Word.WordHelper.EvaluateSmartArtShape(IQuestion question, String filename, SmartArtShapes _smartArtShape) in C:\TETEC\Development\TeTec.Action\Office\Office2013\Word\WordHelper.cs:line 697
Может ли кто-нибудь мне помочь?
Спасибо
Maciej Los
Кажется _smartArtShape
представляет собой коллекцию SmartArtShapes
.. Если я прав, то вы не можете преобразовать коллекцию в целочисленное значение.
F-ES Sitecore
Автоматизация Word не поддерживается в соответствии с asp.net. Может показаться, что это работает на вашем локальном компьютере, но при развертывании это не сработает.
abdul subhan mohammed
Это приложение winfroms
OriginalGriff
Не "ударяйте" свой вопрос: это грубо, высокомерно, ненужно и не поможет вам получить более быстрый ответ. Во что бы то ни стало добавьте информацию, но просто отредактируйте ее, чтобы вернуть в начало списка "без ответа", это просто говорит: "Я важнее всех остальных, так что разберитесь с моим вопросом и игнорируйте остальное".
Как и все остальные, и все остальные вопросы. Если бы все были такими бездумными и грубыми, вы никогда не получили бы ответа ни на что, потому что все, что мы могли бы увидеть, было бы 100 страниц идиотов, сталкивающих все реальные вопросы на страницу 100+
Все, что вы делаете, это раздражаете людей и заставляете их намеренно даже не смотреть на ваш вопрос, не говоря уже о том, чтобы ответить на него.
abdul subhan mohammed
Прошу прощения, то, что вы говорите, правильно, но, дорогая, что, если мой вопрос дойдет до последнего, где только немногие люди пройдут через него?