Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Word+C#


Автор: Alexsar 20.4.2007, 23:49
есть следущий код, который создаёт таблицу в ворде

Код

//создаём таблицу исходных данных
Tables tab = Word_doc.Tables;
object DefaultTableBehavior = 2, AutoFitBehavior = 1;
Table my2 = tab.Add(range, 10, 5, ref DefaultTableBehavior, ref AutoFitBehavior);
my2.Columns.SetWidth(40, WdRulerStyle.wdAdjustNone);

........

//а вот пример заполнения ячейки 
Cell ce = my2.Cell(1, 1);
Range TEXT = ce.Range;
TEXT.Text = "hello";


вопрос: как можно объединить две ячейки, например my2.Cell(1, 1) и my2.Cell(1, 2) или my2.Cell(1, 1) и my2.Cell(2, 1)
и как обращаться к этой объединённой ячейке

для работы с вордом использую библиотеки Microsoft.Office.Interop.Word и Microsoft.Vbe.Interop

Автор: mr.DUDA 20.4.2007, 23:56
Самый простой способ: начать запись макроса в ворде, объединить две ячейки в таблице, и после завершения записи макроса проанализировать код VBA (Alt+F11 для входа в редактор). Потом перенести код VBA в C# (они будут почти идентичны).

Автор: Alexsar 21.4.2007, 00:05
TO mr.DUDA
а код не подкинешь? я с VBA не дружу smile 

Автор: mr.DUDA 21.4.2007, 11:17
Selection.Cells.Merge();

Автор: CYBERDREAM 29.8.2007, 13:50
Приветствую. 
Возникла проблема как выделить эти ячейки, т.е. как их загнать в объект Word.Range
чтобы потом, в свою очередь, воспользоваться методом ...\Cells.Merge()

Автор: CYBERDREAM 30.8.2007, 20:32
Разобрался. 

Код

object unit=Missing.Value;
object d=true;
.....

ce=my2.Cell(11,2); 
t=ce.Range;            //Задаем диапазон
count=1;                 //Задаем смещение
t.Select();                //Выделяем нашу ячейку (11,2)

my2.Application.Selection.MoveDown(ref unit,ref count,ref d); // Смещение на count ячеек вниз, 
         //для метода MoveRight - соответсвенно вправо. Вместе со смещением выделяем и пройденные ячейки

count=4;
my2.Application.Selection.MoveRight(ref unit,ref count,ref d);
my2.Application.Selection.Cells.Merge();                                 //Объединяем выделенные ячейки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)