Редактирование таблицы в Word, объединение ячеек - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем! Объясните, пожалуйста, магию, которая здесь происходит:
            int x = 0;
 
              for (int i=0; i<20; i++)
              {
                  oTable.Rows.Add();
                  oTable.Rows.Add();
                  oTable.Cell(i+4+x, 1).Range.Text = "test "+Convert.ToString(i); // Здесь +4 - это пропуск первых строк (там шапка таблицы)
                  RangeOfCells = oTable.Cell(i+4+x, 1).Range; 
                  RangeOfCells.Select();    // Встаем на ячейку
                  oTable.Application.Selection.MoveRight(ref unit, 1, ref d); // Выделяем всю строку (но в данном случае только + 1 ячейку справа
                  RangeOfCells.Application.Selection.Cells.Merge();           // Объединяем
                  x = x + 2; // Организуем вывод через две строки
              }
Почему всё непонятно куда сдвигается?! Ведь индексы ячеек с текстом и выделением совпадают!

Решение задачи: «Редактирование таблицы в Word, объединение ячеек»

textual
Листинг программы
using Word = Microsoft.Office.Interop.Word;
//.........
for (int i = 0; i < 20; i++)
{
    Word.Row row = oTable.Rows.Add();//Строка в конец таблицы
    oTable.Rows.Add();//Две строки ещё
    oTable.Rows.Add();
    wdDoc.Range(row.Cells[1].Range.Start, row.Cells[2].Range.End).Cells.Merge();//Объединение ячеек в третьей снизу строке
    row.Cells[1].Range.Text = "test " + i.ToString();//Запись текста в первую, уже объединённую ячейку
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5