Работа с MS Word: форматирование таблиц - C#
Формулировка задачи:
Добрый день.
Столкнулся с проблемой в ворде. Надо сделать такую таблицу. Как в ворде.
РАЗДЕЛ II.docx
Ориентацию альбомную сделал, dll подключил , не могу понять, как пододвинуть/расширить ячейку...
ребята, подскажите, как что правильнее, завтра надо будет такую функцию реализовать работащую.
Или может создать шаблон - заменять там значения?!
Word.Application wordApplication = new Word.Application(); //объявили переменную типа Word
Object template = Type.Missing;
Object newTemplate = Type.Missing;
Object documentType = Type.Missing;
Object visible = Type.Missing;
wordApplication.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);//добавили в проложение документ
Word.Document doc = wordApplication.ActiveDocument;
wordApplication.Selection.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape;//ориентация альбомная
wordApplication.Visible = true; //делаем что бы word не работал в фоновом режиме
Object r = Type.Missing;
Word.Paragraph par = doc.Content.Paragraphs.Add(ref r);//дабавляем в документ параграф
Object missing = Type.Missing;
Word.Range rng = doc.Range(ref missing, ref missing); //получаем текстовую область параграфа
rng.Tables.Add(doc.Paragraphs[doc.Paragraphs.Count].Range, 4, 10, ref missing, ref missing);//вставляем в текстовую область таблицу
Word.Table tbl = doc.Tables[doc.Tables.Count];//для удобства работы присваиваем таблицу переменной
rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //выравниваем весь текст по центру
// Форматируем таблицу и применяем стиль
Word.Border[] borders = new Word.Border[6];//массив бордеров
borders[0] = tbl.Borders[Word.WdBorderType.wdBorderLeft];//левая граница
borders[1] = tbl.Borders[Word.WdBorderType.wdBorderRight];//правая граница
borders[2] = tbl.Borders[Word.WdBorderType.wdBorderTop];//нижняя граница
borders[3] = tbl.Borders[Word.WdBorderType.wdBorderBottom];//верхняя граница
borders[4] = tbl.Borders[Word.WdBorderType.wdBorderHorizontal];//горизонтальная граница
borders[5] = tbl.Borders[Word.WdBorderType.wdBorderVertical];//вертикальная граница
foreach (Word.Border border in borders)
{
border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;//ставим стиль границы
border.Color = Word.WdColor.wdColorBlack;//задаем цвет границы
}
tbl.Cell(1, 1).Range.Text = "Наименование мясной продукции (код по ОКРБ 007-2007) ";
/* tbl.Cell(1, 1).Range.Font.Size = 8;
tbl.Cell(1, 1).Range.Font.Name = "Times New Roman";
tbl.Cell(1, 1).Height = 10; // растяжение вниз ячейки
*/
tbl.Cell(1, 2).Range.Text = "Код строки";
tbl.Cell(1, 3).Merge(tbl.Cell(1, 4));
tbl.Cell(1, 3).Range.Text = "Произведено продукции";
tbl.Cell(1, 4).Merge(tbl.Cell(1, 5));
tbl.Cell(1, 4).Merge(tbl.Cell(1, 6));
tbl.Cell(1, 4).Merge(tbl.Cell(1, 5));
tbl.Cell(1, 4).Range.Text = "Реализовано продукции в отчетном периоде";
tbl.Cell(1, 5).Range.Text = "Запасы готовой продукции на складе организа-ции на конец отчетного периода";Решение задачи: «Работа с MS Word: форматирование таблиц»
textual
Листинг программы
rng.Tables[1].Columns[2].PreferredWidthType = Word.WdPreferredWidthType.wdPreferredWidthPoints; rng.Tables[1].Columns[2].PreferredWidth = 5; System.Threading.Thread.Sleep(1000); tbl.Cell(1, 2).Range.Text = "Код строки";