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