Създадох бърза таблица като шаблон за таблица в моя шаблон dotx. Бих искал да създам бърза таблица програмно. това възможно ли е?
В момента използвам съществуваща таблица като шаблон и копирам нейните свойства в новата таблица (вижте кода).
object oTemplate = "D:\\Templates\\tables.dotx";
Word._Document doc = word.Documents.Add(oTemplate, ref oMissing, ref oMissing, ref oMissing);
// Copy first table as template
Word.Table tableTemplate = doc.Tables[1];
Word.Range rangeCopy = tableTemplate.Range;
rangeCopy.Copy();
...
// Reuse table template for new tables
object oMissing = Missing.Value;
var newTable = doc.Tables.Add(range, 1, 1, ref oMissing, ref oMissing);
newTable.Range.Paste();
Проблемът е, че фиктивната таблица не се изтрива от поставянето, а се премества надолу.
Решение:
- Създайте градивен блок във файла на шаблона (tables.dotx в моя случай)
- Заредете градивния блок в C#
- Вмъкване в диапазон
var template = (Word.Template)doc.get_AttachedTemplate();
Word.BuildingBlock objBB = template.BuildingBlockEntries.Item("MyCustomBlock");
objBB.Insert(range, true);