2016-01-22 1 views
-1

Я заменяю текст в списке номеров в слове ms. Когда он заменен, список номеров не работает. он показывает как абзац. Я хочу заменить текст без изменения порядка номеров. Пожалуйста помоги. Заранее спасибо!как заменить текст в списке номеров без изменения его порядка в слове ms с использованием C# interop

newDocument = application.Documents.Open(strFilepath, ref nullobj, ref nullobj, ref nullobj, 
     ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj); 
foreach (Paragraph objParagraph in newDocument.Paragraphs) 
{ 
    if (objParagraph.Range.Text.Contains("1st January 2015 to 31st December 2015")) 
    { 
     objParagraph.Range.Text = objParagraph.Range.Text.Replace("1st January 2015 to 31st December 2015", "1st January 2016 to 31st December 2016"); 
    } 
} 
+0

если вы не возражаете, введите код –

ответ

0

При назначении содержание Paragraph.Range.Text вы заменяете весь абзац, в том числе знака абзаца («возврат каретки» = ANSI 13 =/г или/п в C#) в конце. Знак абзаца - это не только «возврат каретки», но также содержит информацию форматирования на уровне абзаца, которая включает нумерацию.

Попробуйте работать с объектом Range, который укорачивается на один символ, чтобы исключить знак абзаца:

Word.Range rngPara = objParagraph.Range; 
//Note: You may need to pass the following params as objects, with ref 
//instead of "in the clear", as below. 
rngPara.MoveEnd(Word.WdUnit.wdCharacter, -1); 
rngPara.Text = "abc"; 
0

Я заметил, что вы автоматизировать MS Word из приложения ASP.NET.

Корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого необработанного, неинтерактивного клиентского приложения или компонента (включая службы ASP, ASP.NET, DCOM и NT), поскольку Office может проявлять неустойчивое поведение и/или тупик, когда Office запущен в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были безопасны для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы часть кода запускать клиентскую сторону. Если вы используете приложение Office из серверного решения, для успешного выполнения приложения не будет достаточного количества необходимых возможностей. Кроме того, вы рискуете стабильностью своего общего решения. Подробнее об этом читайте в статье Considerations for server-side Automation of Office.

Рассмотрите возможность использования любых сторонних компонентов, предназначенных для выполнения на стороне сервера, или просто Open XML SDK. См. Welcome to the Open XML SDK 2.5 for Office для получения дополнительной информации.