Работа с MS Word: форматирование таблиц - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Столкнулся с проблемой в ворде. Надо сделать такую таблицу. Как в ворде. РАЗДЕЛ II.docx Ориентацию альбомную сделал, dll подключил , не могу понять, как пододвинуть/расширить ячейку...
Листинг программы
  1. Word.Application wordApplication = new Word.Application(); //объявили переменную типа Word
  2. Object template = Type.Missing;
  3. Object newTemplate = Type.Missing;
  4. Object documentType = Type.Missing;
  5. Object visible = Type.Missing;
  6.  
  7. wordApplication.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);//добавили в проложение документ
  8. Word.Document doc = wordApplication.ActiveDocument;
  9. wordApplication.Selection.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape;//ориентация альбомная
  10. wordApplication.Visible = true; //делаем что бы word не работал в фоновом режиме
  11. Object r = Type.Missing;
  12. Word.Paragraph par = doc.Content.Paragraphs.Add(ref r);//дабавляем в документ параграф
  13. Object missing = Type.Missing;
  14. Word.Range rng = doc.Range(ref missing, ref missing); //получаем текстовую область параграфа
  15. rng.Tables.Add(doc.Paragraphs[doc.Paragraphs.Count].Range, 4, 10, ref missing, ref missing);//вставляем в текстовую область таблицу
  16. Word.Table tbl = doc.Tables[doc.Tables.Count];//для удобства работы присваиваем таблицу переменной
  17. rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //выравниваем весь текст по центру
  18. // Форматируем таблицу и применяем стиль
  19. Word.Border[] borders = new Word.Border[6];//массив бордеров
  20. borders[0] = tbl.Borders[Word.WdBorderType.wdBorderLeft];//левая граница
  21. borders[1] = tbl.Borders[Word.WdBorderType.wdBorderRight];//правая граница
  22. borders[2] = tbl.Borders[Word.WdBorderType.wdBorderTop];//нижняя граница
  23. borders[3] = tbl.Borders[Word.WdBorderType.wdBorderBottom];//верхняя граница
  24. borders[4] = tbl.Borders[Word.WdBorderType.wdBorderHorizontal];//горизонтальная граница
  25. borders[5] = tbl.Borders[Word.WdBorderType.wdBorderVertical];//вертикальная граница
  26. foreach (Word.Border border in borders)
  27. {
  28. border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;//ставим стиль границы
  29. border.Color = Word.WdColor.wdColorBlack;//задаем цвет границы
  30. }
  31.  
  32. tbl.Cell(1, 1).Range.Text = "Наименование мясной продукции (код по ОКРБ 007-2007) ";
  33. /* tbl.Cell(1, 1).Range.Font.Size = 8;
  34. tbl.Cell(1, 1).Range.Font.Name = "Times New Roman";
  35. tbl.Cell(1, 1).Height = 10; // растяжение вниз ячейки
  36. */
  37. tbl.Cell(1, 2).Range.Text = "Код строки";
  38. tbl.Cell(1, 3).Merge(tbl.Cell(1, 4));
  39. tbl.Cell(1, 3).Range.Text = "Произведено продукции";
  40. tbl.Cell(1, 4).Merge(tbl.Cell(1, 5));
  41. tbl.Cell(1, 4).Merge(tbl.Cell(1, 6));
  42. tbl.Cell(1, 4).Merge(tbl.Cell(1, 5));
  43. tbl.Cell(1, 4).Range.Text = "Реализовано продукции в отчетном периоде";
  44. tbl.Cell(1, 5).Range.Text = "Запасы готовой продукции на складе организа-ции на конец отчетного периода";
ребята, подскажите, как что правильнее, завтра надо будет такую функцию реализовать работащую. Или может создать шаблон - заменять там значения?!

Решение задачи: «Работа с MS Word: форматирование таблиц»

textual
Листинг программы
  1. rng.Tables[1].Columns[2].PreferredWidthType = Word.WdPreferredWidthType.wdPreferredWidthPoints;
  2.               rng.Tables[1].Columns[2].PreferredWidth = 5;
  3.               System.Threading.Thread.Sleep(1000);
  4.             tbl.Cell(1, 2).Range.Text = "Код строки";

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы