Я пытаюсь сделать таблицы внутри таблиц в WORD. конечно, в финальной программе это будет динамично, чего нет в этом примере.
Вот мой пример кода.
var
aTable, bTable, cTable : OLEVariant;
begin
m_WordApplication := CreateOleObject('Word.Application') ;
m_WordDocument := m_WordApplication.Documents.Add;
aTable := m_WordDocument.Tables.Add(m_WordApplication.Selection.Range, 2, 1);
aTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
bTable := m_WordDocument.Tables.Add(aTable.Cell(1, 1).Range, 2, 1);
bTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
bTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
cTable := m_WordDocument.Tables.Add(aTable.Cell(2, 1).Range, 3, 1);
cTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
cTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;
m_WordDocument.SaveAs('C:/test.doc', False) ;
m_WordApplication.Quit(False);
Сначала я помещаю новую таблицу (2 строки, 1 столбец) в положение курсора, а затем я пытаюсь поместить вторую таблицу в ячейку (1,1) и третью в ячейку (2,1) первой таблицы. Вторая таблица также имеет 2 строки и 1 столбец, но третья таблица имеет 3 строки и 1 столбец. но вместо того, что я хочу, я получаю вторую и третью таблицы с одной строкой, независимо от того, положил ли я что-то в их ячейку или нет. Я всегда вижу только последнюю строку, которую я положил в эту таблицу.
даже больше, если я помещу таблицу с 1 строкой и 2 столбцами в первую таблицу, чем все нормально.
Вы можете мне помочь.
спасибо, Рок