Работа с 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 = "Код строки";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д