Редактирование таблицы в 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();//Запись текста в первую, уже объединённую ячейку
}