2014-02-05 10 views
0

Я использую Microsoft.Office.Interop.Word для получения слов из файла Word, а затем заполняю его в панель макета таблицы. К сожалению, слова, отображаемые на панели макета таблицы, не соответствуют точной последовательности, как в файле Word.Сортировка Microsoft.Office.Interop.Word в C#

Как это исправить?

// Open a doc file. 
Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application(); 
Document d ocument = application.Documents.Open(txtUploadedPathToken.Text); 

// Loop through all words in the document. 
int count = document.Words.Count; 

for (int i = 1; i <= count; i++) 
{ 
    // Write the word. 
    string text = document.Words[i].Text; 
    //Console.WriteLine("Word {0} = {1}", i, text); 
    tableLayoutPanel2.Controls.Add(new Label() { Text = text, Anchor = AnchorStyles.Left, AutoSize = true}, 0, 0); 
} 
+1

Если 'document.Words' - это действительно массив, он будет индексироваться из' 0 .. (count - 1) 'вместо' 1..count', который вы используете здесь. – Tenner

+0

Я попытался начать с 0, и это дает мне ошибку. – user3248886

ответ

0

Ваше слово для чтения кода документа выглядит ОК. но вам может потребоваться изменить способ добавления элементов в панель. Поскольку вы добавляете новые товары в такое же положение (0,0), оно может привести к неправильному порядку.

foreach (Microsoft.Office.Interop.Word.Range range in document.Words) 
{ 
    string text = range.Text; 
    tableLayoutPanel2.Controls.Add(new Label() { Text = text, Anchor = AnchorStyles.Left, AutoSize = true}); 
} 
+0

Спасибо за предлагаемое решение, но результат все тот же. Не следует последовательности, как в файле Word. – user3248886

+0

@ user3248886, я думаю, ваша проблема заключается в том, как вы добавляете элементы управления на свою панель, проверьте мое обновление, так как вы даете '0,0' позицию для каждого элемента управления, она может дать неправильный порядок – Damith

+0

Да, сэр. Теперь он отображается в соответствии с последовательностью после удаления 0,0. Большое спасибо. – user3248886

Смежные вопросы