C # скопировать таблицу из документа word и добавить его в документ word - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу получить таблицу из документа MS Word и добавить эту таблицу в другой документ со всем его форматированием. Я использую OOXML, чтобы сделать это. Чтобы идентифицировать конкретную таблицу, я назначил «Alt Text -> Title», и я могу получить таблицу и ее содержимое из исходного документа. Я добавил таблицу к целевому документу с определенным «Alt Text -> Title» и смог также получить ее.

Я использовал приведенный ниже код для добавления таблицы к целевому документу. Однако, когда я открываю целевой документ, он отображаетСообщение об ошибке MS Word.

Ошибка MS Word -> «Файл поврежден и не может быть открыт.»

Когда я нажимаю «ОК» для этой ошибки, отображается сообщение «Word обнаружил нечитаемый контент в.docx. Вы хотите восстановить содержимое этого документа? Если вы доверяете источнику этого документа, нажмите «Да». Когда я нажимаю «Да».

Он отображает целевой документ с таблицей и всем его форматированием.

Как я могу удалить эту ошибку /предупреждающее сообщение? Что я делаю не так с кодом, который вызывает эту ошибку?

ПРИМЕЧАНИЕ: Таблица, которую я пытаюсь скопировать, содержит текст с Гиперссылка , и этовызывает проблему. Если я удаляю гиперссылку, она работает нормально.

TableProperties tableProperty = sourceDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("sourceTable")).FirstOrDefault();

TableProperties destTableProperty = destinationDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("destinationTable")).FirstOrDefault();

sourceTable = (Table)tableProperty.Parent;
destinationTable = (Table)destTableProperty.Parent;
destinationTable.InsertBeforeSelf<Table>((Table)sourceTable.CloneNode(true));
destinationTable.Remove();

1 Ответ

0 голосов
/ 07 ноября 2019

Этот вопрос был в состоянии, как скопировать таблицу из одного документа Word в другой, и вышеупомянутый код прекрасно работает для достижения того же.

Причиной появления сообщения об ошибке / предупреждении об повреждении документа былогиперссылка в тексте таблицы. Если я удаляю гиперссылку, она работает нормально.

Для вопроса о гиперссылке я опубликую отдельный вопрос и закрываю этот.

...