public void AddTitle(string title, Model.Style style) { //Word段落 Word.Paragraph p; p = document.Content.Paragraphs.Add(ref nothing); //设置段落中的内容文本 p.Range.Text = title; if (style != null) { object bContinuousPrev = false;//是否为大圆点 true 大圆点 object a = 1; object oName = ""; object listFormat = Word.WdDefaultListBehavior.wdWord10ListBehavior; p.Range.Font.Name = style.Font; p.Range.Font.Size = style.Size == 0 ? p.Range.Font.Size : style.Size; p.Range.Font.Color = style.FontColor; p.Range.Font.Bold = style.FontStyle == System.Drawing.FontStyle.Bold ? 1 : 0; if (style.LineSpac > 0) { p.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceAtLeast; //行距最小值 p.LineSpacing = style.LineSpac; //行距28磅 } p.CharacterUnitFirstLineIndent = style.Indent == 0 ? p.CharacterUnitFirstLineIndent : style.Indent; //缩进2字符 //Word.ListGallery l = application.ListGalleries[Word.WdListGalleryType.wdOutlineNumberGallery]; //l.ListTemplates[ref a].ListLevels[1].NumberFormat = style.NumberFormat; Word.ListTemplate it = application.ActiveDocument.ListTemplates.Add(ref bContinuousPrev, ref oName); it.ListLevels[1].NumberFormat = style.NumberFormat; //application.ActiveDocument. //p.Range.ListFormat.ListTemplate..ApplyListTemplate(l, ref bContinuousPrev, ref a, ref listFormat); } //添加到末尾 p.Range.InsertParagraphAfter(); }
public void addUnorderedList(XmlNode ulNode) { if (ulNode == null) { return; } string bookmark = ulNode.Attributes["k"].Value; if (!wDoc.Bookmarks.Exists(bookmark)) { return; } XmlNodeList lis = ulNode.SelectNodes("li"); if (lis.Count == 0) { return; } object bm = bookmark; Word.Range wrdRange = wDoc.Bookmarks.get_Item(ref bm).Range; wrdRange.Select(); for (int i = 0; i < lis.Count; i++) { wApp.Selection.TypeText(lis[i].InnerText.Trim()); wApp.Selection.TypeParagraph(); } // select these paragraphs wrdRange.Select(); Object unit = Word.WdUnits.wdParagraph; Object count = lis.Count; Object extend = Word.WdMovementType.wdExtend; wApp.Selection.MoveDown(ref unit, ref count, ref extend); object idx = 1; Word.ListTemplate listTemp = wApp.ListGalleries [Word.WdListGalleryType.wdBulletGallery] .ListTemplates.get_Item(ref idx); object bContinuousPrev = false; int c = wApp.Selection.Paragraphs.Count; for (int i = 0; i < c; i++) { wApp.Selection.Paragraphs[i + 1].Range.ListFormat.ApplyListTemplate( listTemp, bContinuousPrev, nothing, nothing); if (i == 0) { bContinuousPrev = true; } } }
private void FillWork(String works) { Word.Range bookmarkRange = word.FindBookMark(workBookMark).Range; bookmarkRange.Text = works; object listBehavior = Word.WdDefaultListBehavior.wdWord10ListBehavior; bookmarkRange.ListFormat.ApplyBulletDefault(ref listBehavior); Word.ListTemplate markedListTemplate = word.CreateListTemplate(); bookmarkRange.ListFormat.ApplyListTemplate(markedListTemplate, false, Word.WdListApplyTo.wdListApplyToSelection, listBehavior); bookmarkRange.ParagraphFormat = word.CreateParagraphTemplate(bookmarkRange); }
/// <summary> /// Создать нумерованный многоуровневый список Word /// </summary> public void CreateMultiLevelList(Word.Paragraph paragraph, Word.ListTemplate listTemplate, List <ITestCase> testCase, int Index) { // Добавить название тест кейса на первый уровень нумерованного многоуровневого списка paragraph.Range.Text = testCase.ElementAt(Index).Title; paragraph.Range.SetListLevel(1); paragraph.Range.ListFormat.ApplyListTemplateWithLevel(listTemplate, ContinuePreviousList: true, ApplyTo: WdListApplyTo.wdListApplyToSelection, DefaultListBehavior: WdDefaultListBehavior.wdWord10ListBehavior, ApplyLevel: 1); paragraph.Range.InsertParagraphAfter(); // Если в тест кейсе нет Actions if (testCase.ElementAt(Index).Actions.Count == 0) { paragraph.Range.Text = "Тест кейс пуст!"; paragraph.Range.SetListLevel(2); paragraph.Range.ListFormat.ApplyListTemplateWithLevel(listTemplate, ContinuePreviousList: true, ApplyTo: WdListApplyTo.wdListApplyToSelection, DefaultListBehavior: WdDefaultListBehavior.wdWord10ListBehavior, ApplyLevel: 2); paragraph.Range.InsertParagraphAfter(); } ISharedStep sharedStep = null; ISharedStepReference sharedStepReference = null; for (int i = 0; i < testCase.ElementAt(Index).Actions.Count; i++) { sharedStepReference = testCase.ElementAt(Index).Actions.ElementAt(i) as ISharedStepReference; // Добавить общий шаг if (sharedStepReference != null) { // Добавить текст общего шага на второй уровень нумерованного многоуровневого списка sharedStep = sharedStepReference.FindSharedStep(); paragraph.Range.Text = sharedStep.Title + "\t(ОБЩИЙ ШАГ)"; paragraph.Range.SetListLevel(2); paragraph.Range.ListFormat.ApplyListTemplateWithLevel(listTemplate, ContinuePreviousList: true, ApplyTo: WdListApplyTo.wdListApplyToSelection, DefaultListBehavior: WdDefaultListBehavior.wdWord10ListBehavior, ApplyLevel: 2); paragraph.Range.InsertParagraphAfter(); } else { ParameterizedString parametrizedString = new ParameterizedString(((ITestStep)testCase.ElementAt(Index).Actions[i]).Title.ToPlainText()); // Добавить текст Action на второй уровень нумерованного многоуровневого списка paragraph.Range.Text = get_ActionWithParameters(testCase.ElementAt(Index), parametrizedString.ToPlainText()); paragraph.Range.SetListLevel(2); paragraph.Range.ListFormat.ApplyListTemplateWithLevel(listTemplate, ContinuePreviousList: true, ApplyTo: WdListApplyTo.wdListApplyToSelection, DefaultListBehavior: WdDefaultListBehavior.wdWord10ListBehavior, ApplyLevel: 2); paragraph.Range.InsertParagraphAfter(); } } }
public Word.ListTemplate CreateListTemplate() { // выбор маркера для списка Word._Application app = _application; Word.ListGallery gallery = app.ListGalleries[Word.WdListGalleryType.wdBulletGallery]; Word.ListTemplate myPreferredListTemplate = gallery.ListTemplates[1]; // номер семейства маркеров?(тире или что-то другое) Word.ListLevel listLevel = myPreferredListTemplate.ListLevels[1]; //Номер семейства(чего?) только 1 работает. listLevel.NumberFormat = "-"; // символ для маркера listLevel.TrailingCharacter = Word.WdTrailingCharacter.wdTrailingSpace; // После маркера пробел.(табуляция или слитно) listLevel.NumberStyle = Word.WdListNumberStyle.wdListNumberStyleBullet; // wdListNumberStyleBullet для маркированного списка listLevel.Alignment = Word.WdListLevelAlignment.wdListLevelAlignRight; // выравнивание?. listLevel.NumberPosition = 0; listLevel.TextPosition = 0; listLevel.StartAt = 1; return(myPreferredListTemplate); }
private void setCellContent(Word.Cell cell, XmlNode tdNode) { XmlNodeList lis = tdNode.SelectNodes("ol/li"); if (lis.Count == 0) { cell.Range.Text = tdNode.InnerText.Trim(); return; } for (int i = 0; i < lis.Count; i++) { XmlNode li = lis[i]; string txt = li.InnerText.Trim(); if (cell.Range.Paragraphs.Count > i) { cell.Range.Paragraphs[i + 1].Range.Text = txt; } else { Word.Paragraph p = cell.Range.Paragraphs.Add(); p.Range.Text = txt; } } object idx = 1; Word.ListTemplate listTemp = wApp.ListGalleries[Word.WdListGalleryType.wdNumberGallery] .ListTemplates.get_Item(ref idx); object bContinuousPrev = false; object applyTo = Missing.Value; object defaultListBehaviour = Missing.Value; for (int k = 0; k < cell.Range.Paragraphs.Count; k++) { Word.Paragraph p = cell.Range.Paragraphs[k + 1]; p.Range.ListFormat.ApplyListTemplate(listTemp, bContinuousPrev, applyTo, defaultListBehaviour); p.Range.Select(); wApp.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceExactly; wApp.Selection.ParagraphFormat.LineSpacing = 14f; wApp.Selection.ParagraphFormat.LineUnitAfter = 0.5f; } }
public static void ExportWordData(DataTable wordData, DataTable textData, DataTable classTable, DateTime PeriodDateFrom, DateTime PeriodDateTo, DataTable CHLDReport) { try { _Word._Application WordApp = new _Word.Application(); _Word._Document WordDoc = new _Word.Document(); object oMissing = Missing.Value; object oEndOfDoc = "\\endofdoc"; WordDoc = WordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); _Word.Paragraph oPara1; oPara1 = WordDoc.Content.Paragraphs.Add(ref oMissing); if (PeriodDateFrom.ToString("MMMMyyyy") == PeriodDateTo.ToString("MMMMyyyy")) { oPara1.Range.Text = $"Информация о детях, обратившихся за медицинской помощью в медицинские организации Краснодарского края из оздоровительных организаций всех форм собственности Краснодарского края за {PeriodDateTo:MMMM yyyy}"; } else if (PeriodDateFrom.ToString("yyyy") == PeriodDateTo.ToString("yyyy")) { oPara1.Range.Text = $"Информация о детях, обратившихся за медицинской помощью в медицинские организации Краснодарского края из оздоровительных организаций всех форм собственности Краснодарского края за {PeriodDateFrom:MMMM}-{PeriodDateTo:MMMM yyyy}"; } else { oPara1.Range.Text = $"Информация о детях, обратившихся за медицинской помощью в медицинские организации Краснодарского края из оздоровительных организаций всех форм собственности Краснодарского края за {PeriodDateFrom:MMMM yyyy}-{PeriodDateTo:MMMM yyyy}"; } oPara1.Range.Font.Bold = 1; oPara1.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara1.Range.Font.Name = "Times New Roman"; oPara1.Range.Font.Size = 14; //Размер шрифта абзаца oPara1.Format.SpaceAfter = 14; oPara1.Range.InsertParagraphAfter(); _Word.Table oTable; _Word.Range wrdRng = WordDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oTable = WordDoc.Tables.Add(wrdRng, 3 + wordData.Rows.Count, 10, ref oMissing, ref oMissing); // Размерность таблицы Nх10 (N - кол-во строк зависит от кол-ва строк в принимаемом аргументе, 10 столбцов) oTable.AutoFitBehavior(_Word.WdAutoFitBehavior.wdAutoFitFixed); // wdAutoFitFixed - фиксированный размер столбцов oTable.Rows.SetLeftIndent(-65, _Word.WdRulerStyle.wdAdjustNone); //Смещение таблицы влево на 75 единиц oTable.Range.ParagraphFormat.SpaceBefore = 6; oTable.Range.Bold = 0; //Выделение шрифта жирным oTable.Range.Font.Size = 10; //Размер шрифта в таблице oTable.Range.ParagraphFormat.SpaceAfter = 14; oTable.Range.ParagraphFormat.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphCenter; //Горизонтальное выравнивание текста по центру ячейки oTable.Range.Cells.VerticalAlignment = _Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; //Вертикальное выравнивание текста в ячейке oTable.Borders.InsideLineStyle = _Word.WdLineStyle.wdLineStyleSingle; //Отрисовка сплошных линий внутри таблицы oTable.Borders.OutsideLineStyle = _Word.WdLineStyle.wdLineStyleSingle; //Отрисовка сплошных линий снаружи таблицы //Размеры столбцов в единицах oTable.Columns[1].Width = 90; //102 oTable.Columns[2].Width = 67; oTable.Columns[3].Width = 40; oTable.Columns[4].Width = 40; oTable.Columns[5].Width = 40; oTable.Columns[6].Width = 40; oTable.Columns[7].Width = 60.03f; oTable.Columns[8].Width = 62.64f; oTable.Columns[9].Width = 63.51f; oTable.Columns[10].Width = 63; //66.41f; oTable.Rows[2].Height = 85; //Высота 2 строки в таблице oTable.Rows[1].Cells[1].Range.Text = "Территория"; oTable.Rows[1].Cells[2].Range.Text = "Количество случаев"; oTable.Rows[1].Cells[3].Range.Text = "Ребёнок находится на организованном отдыхе"; oTable.Rows[2].Cells[3].Range.Text = "Самостоятельно"; oTable.Rows[2].Cells[4].Range.Text = "По путевке Мать и дитя"; oTable.Rows[1].Cells[5].Range.Text = "Ребёнок находится на неорганизованном отдыхе"; oTable.Rows[2].Cells[5].Range.Text = "Самостоятельно"; oTable.Rows[2].Cells[6].Range.Text = "С законным представителем"; oTable.Rows[1].Cells[7].Range.Text = "Первичная медико-санитарная помощь (ПМСП)"; oTable.Rows[1].Cells[8].Range.Text = "Первичная специализированная медико-санитарная помощь (ПСМСП)"; oTable.Rows[1].Cells[9].Range.Text = "Специализированная медицинская помощь (СМП)"; oTable.Rows[1].Cells[10].Range.Text = "Направлен (переведён) в реанимацию"; oTable.Cell(1, 1).Merge(oTable.Cell(2, 1)); //Объединение 1 ячейки 1 строки с 1 ячейкой 2 строки oTable.Cell(1, 2).Merge(oTable.Cell(2, 2)); //Объединение 2 ячейки 1 строки со 2 ячейкой 2 строки oTable.Cell(1, 3).Merge(oTable.Cell(1, 4)); //Объединение 3 ячейки 1 строки с 4 ячейкой 1 строки oTable.Cell(1, 4).Merge(oTable.Cell(1, 5)); //Объединение 4 ячейки 1 строки с 5 ячейкой 1 строки oTable.Cell(1, 5).Merge(oTable.Cell(2, 7)); //Объединение 5 ячейки 1 строки с 7 ячейкой 2 строки oTable.Cell(1, 6).Merge(oTable.Cell(2, 8)); //Объединение 6 ячейки 1 строки с 8 ячейкой 2 строки oTable.Cell(1, 7).Merge(oTable.Cell(2, 9)); //Объединение 7 ячейки 1 строки с 9 ячейкой 2 строки oTable.Cell(1, 8).Merge(oTable.Cell(2, 10)); //Объединение 8 ячейки 1 строки с 10 ячейкой 2 строки oTable.Cell(2, 3).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов oTable.Cell(2, 4).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов oTable.Cell(2, 5).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов oTable.Cell(2, 6).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов for (int i = 0; i < wordData.Rows.Count; i++) { for (int j = 0; j < 10; j++) { oTable.Cell(i + 3, j + 1).Range.Text = wordData.Rows[i][j].ToString(); } } oTable.Cell(3 + wordData.Rows.Count, 1).Range.Bold = 1; oTable.Cell(3 + wordData.Rows.Count, 1).Range.Text = "Итого"; for (int j = 2; j <= 10; j++) { int sumColumn = 0; for (int i = 3; i < oTable.Rows.Count; i++) { string _char = oTable.Cell(i, j).Range.Text.ToString(); _char = _char.Remove(_char.Length - 2, 2); sumColumn += int.Parse(_char); } oTable.Cell(3 + wordData.Rows.Count, j).Range.Bold = 1; oTable.Cell(3 + wordData.Rows.Count, j).Range.Text = sumColumn.ToString(); } _Word.Paragraph oPara3; oPara3 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara3.Range.Font.Bold = 0; oPara3.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara3.Range.Font.Name = "Times New Roman"; oPara3.Range.Font.Size = 14; //Размер шрифта абзаца oPara3.Format.SpaceAfter = 14; string itog = oTable.Cell(oTable.Rows.Count, 2).Range.Text.ToString(); itog = itog.Remove(itog.Length - 2, 2); if (PeriodDateFrom.ToString("MMMMyyyy") == PeriodDateTo.ToString("MMMMyyyy")) { oPara3.Range.Text = $"За {PeriodDateTo:MMMM yyyy} за медицинской помощью обратились {itog} детей, из них:"; } else if (PeriodDateFrom.ToString("yyyy") == PeriodDateTo.ToString("yyyy")) { oPara3.Range.Text = $"За {PeriodDateFrom:MMMM}-{PeriodDateTo:MMMM yyyy} за медицинской помощью обратились {itog} детей, из них:"; } else { oPara3.Range.Text = $"За {PeriodDateFrom:MMMM yyyy}-{PeriodDateTo:MMMM yyyy} за медицинской помощью обратились {itog} детей, из них:"; } oPara3.Range.InsertParagraphAfter(); string area = ""; string relax = ""; string doo = ""; string help = ""; string diag = ""; //Создание многоуровнего списка(в данном случае создается 5 уровней) _Word.ListTemplate template = WordApp.ListGalleries[_Word.WdListGalleryType.wdOutlineNumberGallery].ListTemplates.get_Item(1); //1-й уровень _Word.ListLevel level = template.ListLevels[1]; level.NumberFormat = "%1."; level.TrailingCharacter = _Word.WdTrailingCharacter.wdTrailingTab; level.NumberStyle = _Word.WdListNumberStyle.wdListNumberStyleArabic; level.NumberPosition = WordApp.CentimetersToPoints(0f); level.Alignment = _Word.WdListLevelAlignment.wdListLevelAlignLeft; level.TextPosition = WordApp.CentimetersToPoints(0.63f); level.TabPosition = (float)_Word.WdConstants.wdUndefined; level.ResetOnHigher = 0; level.StartAt = 1; level.Font.Bold = 0; level.Font.Italic = (int)_Word.WdConstants.wdUndefined; level.Font.StrikeThrough = (int)_Word.WdConstants.wdUndefined; level.Font.Subscript = (int)_Word.WdConstants.wdUndefined; level.Font.Superscript = (int)_Word.WdConstants.wdUndefined; level.Font.Shadow = (int)_Word.WdConstants.wdUndefined; level.Font.Outline = (int)_Word.WdConstants.wdUndefined; level.Font.Emboss = (int)_Word.WdConstants.wdUndefined; level.Font.Engrave = (int)_Word.WdConstants.wdUndefined; level.Font.AllCaps = (int)_Word.WdConstants.wdUndefined; level.Font.Hidden = (int)_Word.WdConstants.wdUndefined; level.Font.Underline = _Word.WdUnderline.wdUnderlineNone; level.Font.Color = _Word.WdColor.wdColorAutomatic; level.Font.Size = (int)_Word.WdConstants.wdUndefined; level.Font.Animation = _Word.WdAnimation.wdAnimationNone; level.Font.DoubleStrikeThrough = (int)_Word.WdConstants.wdUndefined; level.LinkedStyle = ""; //2-й уровень level = template.ListLevels[2]; level.NumberFormat = "%1.%2."; level.TrailingCharacter = _Word.WdTrailingCharacter.wdTrailingTab; level.NumberStyle = _Word.WdListNumberStyle.wdListNumberStyleArabic; level.NumberPosition = WordApp.CentimetersToPoints(0.63f); level.Alignment = _Word.WdListLevelAlignment.wdListLevelAlignLeft; level.TextPosition = WordApp.CentimetersToPoints(1.4f); level.TabPosition = (float)_Word.WdConstants.wdUndefined; level.ResetOnHigher = 1; level.StartAt = 1; level.Font.Bold = 0; level.Font.Italic = (int)_Word.WdConstants.wdUndefined; level.Font.StrikeThrough = (int)_Word.WdConstants.wdUndefined; level.Font.Subscript = (int)_Word.WdConstants.wdUndefined; level.Font.Superscript = (int)_Word.WdConstants.wdUndefined; level.Font.Shadow = (int)_Word.WdConstants.wdUndefined; level.Font.Outline = (int)_Word.WdConstants.wdUndefined; level.Font.Emboss = (int)_Word.WdConstants.wdUndefined; level.Font.Engrave = (int)_Word.WdConstants.wdUndefined; level.Font.AllCaps = (int)_Word.WdConstants.wdUndefined; level.Font.Hidden = (int)_Word.WdConstants.wdUndefined; level.Font.Underline = _Word.WdUnderline.wdUnderlineNone; level.Font.Color = _Word.WdColor.wdColorAutomatic; level.Font.Size = (int)_Word.WdConstants.wdUndefined; level.Font.Animation = _Word.WdAnimation.wdAnimationNone; level.Font.DoubleStrikeThrough = (int)_Word.WdConstants.wdUndefined; level.LinkedStyle = ""; //3-й уровень level = template.ListLevels[3]; level.NumberFormat = "%1.%2.%3."; level.TrailingCharacter = _Word.WdTrailingCharacter.wdTrailingTab; level.NumberStyle = _Word.WdListNumberStyle.wdListNumberStyleArabic; level.NumberPosition = WordApp.CentimetersToPoints(1.27f); level.Alignment = _Word.WdListLevelAlignment.wdListLevelAlignLeft; level.TextPosition = WordApp.CentimetersToPoints(2.16f); level.TabPosition = (float)_Word.WdConstants.wdUndefined; level.ResetOnHigher = 2; level.StartAt = 1; level.Font.Bold = 0; level.Font.Italic = (int)_Word.WdConstants.wdUndefined; level.Font.StrikeThrough = (int)_Word.WdConstants.wdUndefined; level.Font.Subscript = (int)_Word.WdConstants.wdUndefined; level.Font.Superscript = (int)_Word.WdConstants.wdUndefined; level.Font.Shadow = (int)_Word.WdConstants.wdUndefined; level.Font.Outline = (int)_Word.WdConstants.wdUndefined; level.Font.Emboss = (int)_Word.WdConstants.wdUndefined; level.Font.Engrave = (int)_Word.WdConstants.wdUndefined; level.Font.AllCaps = (int)_Word.WdConstants.wdUndefined; level.Font.Hidden = (int)_Word.WdConstants.wdUndefined; level.Font.Underline = _Word.WdUnderline.wdUnderlineNone; level.Font.Color = _Word.WdColor.wdColorAutomatic; level.Font.Size = (int)_Word.WdConstants.wdUndefined; level.Font.Animation = _Word.WdAnimation.wdAnimationNone; level.Font.DoubleStrikeThrough = (int)_Word.WdConstants.wdUndefined; level.LinkedStyle = ""; //4-й уровень level = template.ListLevels[4]; level.NumberFormat = "%1.%2.%3.%4."; level.TrailingCharacter = _Word.WdTrailingCharacter.wdTrailingTab; level.NumberStyle = _Word.WdListNumberStyle.wdListNumberStyleArabic; level.NumberPosition = WordApp.CentimetersToPoints(1.9f); level.Alignment = _Word.WdListLevelAlignment.wdListLevelAlignLeft; level.TextPosition = WordApp.CentimetersToPoints(3.05f); level.TabPosition = (float)_Word.WdConstants.wdUndefined; level.ResetOnHigher = 3; level.StartAt = 1; level.Font.Bold = 0; level.Font.Italic = (int)_Word.WdConstants.wdUndefined; level.Font.StrikeThrough = (int)_Word.WdConstants.wdUndefined; level.Font.Subscript = (int)_Word.WdConstants.wdUndefined; level.Font.Superscript = (int)_Word.WdConstants.wdUndefined; level.Font.Shadow = (int)_Word.WdConstants.wdUndefined; level.Font.Outline = (int)_Word.WdConstants.wdUndefined; level.Font.Emboss = (int)_Word.WdConstants.wdUndefined; level.Font.Engrave = (int)_Word.WdConstants.wdUndefined; level.Font.AllCaps = (int)_Word.WdConstants.wdUndefined; level.Font.Hidden = (int)_Word.WdConstants.wdUndefined; level.Font.Underline = _Word.WdUnderline.wdUnderlineNone; level.Font.Color = _Word.WdColor.wdColorAutomatic; level.Font.Size = (int)_Word.WdConstants.wdUndefined; level.Font.Animation = _Word.WdAnimation.wdAnimationNone; level.Font.DoubleStrikeThrough = (int)_Word.WdConstants.wdUndefined; level.LinkedStyle = ""; //5-й уровень level = template.ListLevels[5]; level.NumberFormat = "%1.%2.%3.%4.%5."; level.TrailingCharacter = _Word.WdTrailingCharacter.wdTrailingTab; level.NumberStyle = _Word.WdListNumberStyle.wdListNumberStyleArabic; level.NumberPosition = WordApp.CentimetersToPoints(2.54f); level.Alignment = _Word.WdListLevelAlignment.wdListLevelAlignLeft; level.TextPosition = WordApp.CentimetersToPoints(3.94f); level.TabPosition = (float)_Word.WdConstants.wdUndefined; level.ResetOnHigher = 4; level.StartAt = 1; level.Font.Bold = 0; level.Font.Italic = (int)_Word.WdConstants.wdUndefined; level.Font.StrikeThrough = (int)_Word.WdConstants.wdUndefined; level.Font.Subscript = (int)_Word.WdConstants.wdUndefined; level.Font.Superscript = (int)_Word.WdConstants.wdUndefined; level.Font.Shadow = (int)_Word.WdConstants.wdUndefined; level.Font.Outline = (int)_Word.WdConstants.wdUndefined; level.Font.Emboss = (int)_Word.WdConstants.wdUndefined; level.Font.Engrave = (int)_Word.WdConstants.wdUndefined; level.Font.AllCaps = (int)_Word.WdConstants.wdUndefined; level.Font.Hidden = (int)_Word.WdConstants.wdUndefined; level.Font.Underline = _Word.WdUnderline.wdUnderlineNone; level.Font.Color = _Word.WdColor.wdColorAutomatic; level.Font.Size = (int)_Word.WdConstants.wdUndefined; level.Font.Animation = _Word.WdAnimation.wdAnimationNone; level.Font.DoubleStrikeThrough = (int)_Word.WdConstants.wdUndefined; level.LinkedStyle = ""; template.Name = ""; for (int i = 0; i < textData.Rows.Count; i++) { for (int j = 0; j < 10; j++) { switch (j) { case 0: if (area != textData.Rows[i][j].ToString()) { area = textData.Rows[i][j].ToString(); relax = ""; j++; _Word.Paragraph oPara4; oPara4 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara4.Range.Font.Bold = 0; oPara4.Range.Font.Underline = _Word.WdUnderline.wdUnderlineSingle; oPara4.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara4.Range.Font.Name = "Times New Roman"; oPara4.Range.Font.Size = 14; //Размер шрифта абзаца oPara4.Range.Text = $"{area} ({textData.Rows[i][j]}):"; oPara4.Range.ListFormat.ApplyListTemplateWithLevel(template, false, _Word.WdListApplyTo.wdListApplyToWholeList, _Word.WdDefaultListBehavior.wdWord10ListBehavior); oPara4.Range.SetListLevel(1); oPara4.Range.InsertParagraphAfter(); } break; case 2: if (relax != textData.Rows[i][j].ToString()) { relax = textData.Rows[i][j].ToString(); doo = ""; j++; _Word.Paragraph oPara4; oPara4 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara4.Range.Font.Bold = 0; oPara4.Range.Font.Underline = _Word.WdUnderline.wdUnderlineNone; oPara4.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara4.Range.Font.Name = "Times New Roman"; oPara4.Range.Font.Size = 14; //Размер шрифта абзаца oPara4.Range.Text = $"{relax} ({textData.Rows[i][j]}):"; oPara4.Range.ListFormat.ApplyListTemplateWithLevel(template, false, _Word.WdListApplyTo.wdListApplyToWholeList, _Word.WdDefaultListBehavior.wdWord10ListBehavior); oPara4.Range.SetListLevel(2); oPara4.Range.InsertParagraphAfter(); } break; case 4: if (doo != textData.Rows[i][j].ToString()) { doo = textData.Rows[i][j].ToString(); help = ""; j++; _Word.Paragraph oPara4; oPara4 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara4.Range.Font.Bold = 0; oPara4.Range.Font.Underline = _Word.WdUnderline.wdUnderlineNone; oPara4.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara4.Range.Font.Name = "Times New Roman"; oPara4.Range.Font.Size = 14; //Размер шрифта абзаца oPara4.Range.Text = $"{doo} ({textData.Rows[i][j]}):"; oPara4.Range.ListFormat.ApplyListTemplateWithLevel(template, false, _Word.WdListApplyTo.wdListApplyToWholeList, _Word.WdDefaultListBehavior.wdWord10ListBehavior); oPara4.Range.SetListLevel(3); oPara4.Range.InsertParagraphAfter(); } break; case 6: if (help != textData.Rows[i][j].ToString()) { help = textData.Rows[i][j].ToString(); diag = ""; j++; _Word.Paragraph oPara4; oPara4 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara4.Range.Font.Bold = 0; oPara4.Range.Font.Underline = _Word.WdUnderline.wdUnderlineNone; oPara4.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara4.Range.Font.Name = "Times New Roman"; oPara4.Range.Font.Size = 14; //Размер шрифта абзаца oPara4.Range.Text = $"{help} ({textData.Rows[i][j]}):"; oPara4.Range.ListFormat.ApplyListTemplateWithLevel(template, false, _Word.WdListApplyTo.wdListApplyToWholeList, _Word.WdDefaultListBehavior.wdWord10ListBehavior); oPara4.Range.SetListLevel(4); oPara4.Range.InsertParagraphAfter(); } break; case 8: if (diag != textData.Rows[i][j].ToString()) { diag = textData.Rows[i][j].ToString(); j++; _Word.Paragraph oPara4; oPara4 = WordDoc.Content.Paragraphs.Add(); oPara4.Range.Font.Bold = 0; oPara4.Range.Font.Underline = _Word.WdUnderline.wdUnderlineNone; oPara4.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara4.Range.Font.Name = "Times New Roman"; oPara4.Range.Font.Size = 14; //Размер шрифта абзаца oPara4.Range.Text = $"{diag} - {textData.Rows[i][j]}"; oPara4.Range.ListFormat.ApplyListTemplateWithLevel(template, false, _Word.WdListApplyTo.wdListApplyToWholeList, _Word.WdDefaultListBehavior.wdWord10ListBehavior); oPara4.Range.SetListLevel(5); oPara4.Range.InsertParagraphAfter(); } break; } } } //WordDoc.Paragraphs[WordDoc.Paragraphs.Count].Range.Delete(); //Удаление последнего пустого абзаца WordDoc.Paragraphs[WordDoc.Paragraphs.Count].Format.Reset(); _Word.Paragraph oPara5 = WordDoc.Content.Paragraphs.Add(); /*_Word.Range wrdRng_1 = oPara5.Range; * _Word.Table oTable_1 = WordDoc.Tables.Add(wrdRng_1, 2, 2, ref oMissing, ref oMissing); * * var table = WordDoc.Tables[WordDoc.Tables.Count]; * table.set_Style("Сетка таблицы"); * table.ApplyStyleHeadingRows = true; * table.ApplyStyleLastRow = false; * table.ApplyStyleFirstColumn = true; * table.ApplyStyleLastColumn = false; * table.ApplyStyleRowBands = true; * table.ApplyStyleColumnBands = false;*/ _Word.Table oTable_1; _Word.Range wrdRng_1 = WordDoc.Bookmarks.get_Item(ref oEndOfDoc).Range; oTable_1 = WordDoc.Tables.Add(wrdRng_1, 2 + classTable.Rows.Count, 14, ref oMissing, ref oMissing); // Размерность таблицы Nх10 (N - кол-во строк зависит от кол-ва строк в принимаемом аргументе, 10 столбцов) oTable_1.AutoFitBehavior(_Word.WdAutoFitBehavior.wdAutoFitFixed); // wdAutoFitFixed - фиксированный размер столбцов oTable_1.Rows.SetLeftIndent(-55, _Word.WdRulerStyle.wdAdjustNone); //Смещение таблицы влево на 75 единиц oTable_1.Range.ParagraphFormat.SpaceBefore = 6; oTable_1.Range.Bold = 0; //Выделение шрифта жирным oTable_1.Range.Font.Size = 10; //Размер шрифта в таблице oTable_1.Range.ParagraphFormat.SpaceAfter = 14; oTable_1.Range.ParagraphFormat.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphCenter; //Горизонтальное выравнивание текста по центру ячейки oTable_1.Range.Cells.VerticalAlignment = _Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; //Вертикальное выравнивание текста в ячейке oTable_1.Borders.InsideLineStyle = _Word.WdLineStyle.wdLineStyleSingle; //Отрисовка сплошных линий внутри таблицы oTable_1.Borders.OutsideLineStyle = _Word.WdLineStyle.wdLineStyleSingle; //Отрисовка сплошных линий снаружи таблицы //Размеры столбцов в единицах oTable_1.Columns[1].Width = 90; //102 oTable_1.Columns[2].Width = 35; oTable_1.Columns[3].Width = 35; oTable_1.Columns[4].Width = 35; oTable_1.Columns[5].Width = 35; oTable_1.Columns[6].Width = 35; oTable_1.Columns[7].Width = 35; oTable_1.Columns[8].Width = 35; oTable_1.Columns[9].Width = 35; oTable_1.Columns[10].Width = 35; oTable_1.Columns[11].Width = 35; oTable_1.Columns[12].Width = 35; oTable_1.Columns[13].Width = 35; oTable_1.Columns[14].Width = 35; oTable_1.Rows[1].Height = 95; //Высота 1 строки в таблице oTable_1.Rows[1].Cells[1].Range.Text = "Территория"; oTable_1.Rows[1].Cells[2].Range.Text = "Травмы"; oTable_1.Rows[1].Cells[3].Range.Text = "Утопления"; oTable_1.Rows[1].Cells[4].Range.Text = "Инфекционные"; oTable_1.Rows[1].Cells[5].Range.Text = "Хирургические"; oTable_1.Rows[1].Cells[6].Range.Text = "Соматические"; oTable_1.Rows[1].Cells[7].Range.Text = "Нейрохирургические"; oTable_1.Rows[1].Cells[8].Range.Text = "Неврологические"; oTable_1.Rows[1].Cells[9].Range.Text = "ЛОР"; oTable_1.Rows[1].Cells[10].Range.Text = "Отравления"; oTable_1.Rows[1].Cells[11].Range.Text = "Алкогольные отравления"; oTable_1.Rows[1].Cells[12].Range.Text = "Наркотические отравления"; oTable_1.Rows[1].Cells[13].Range.Text = "Прочие"; oTable_1.Rows[1].Cells[14].Range.Bold = 1; oTable_1.Rows[1].Cells[14].Range.Text = "Всего"; /*oTable_1.Cell(1, 1).Merge(oTable.Cell(2, 1)); //Объединение 1 ячейки 1 строки с 1 ячейкой 2 строки * oTable_1.Cell(1, 2).Merge(oTable.Cell(2, 2)); //Объединение 2 ячейки 1 строки со 2 ячейкой 2 строки * oTable_1.Cell(1, 3).Merge(oTable.Cell(1, 4)); //Объединение 3 ячейки 1 строки с 4 ячейкой 1 строки * oTable_1.Cell(1, 4).Merge(oTable.Cell(1, 5)); //Объединение 4 ячейки 1 строки с 5 ячейкой 1 строки * oTable_1.Cell(1, 5).Merge(oTable.Cell(2, 7)); //Объединение 5 ячейки 1 строки с 7 ячейкой 2 строки * oTable_1.Cell(1, 6).Merge(oTable.Cell(2, 8)); //Объединение 6 ячейки 1 строки с 8 ячейкой 2 строки * oTable_1.Cell(1, 7).Merge(oTable.Cell(2, 9)); //Объединение 7 ячейки 1 строки с 9 ячейкой 2 строки * oTable_1.Cell(1, 8).Merge(oTable.Cell(2, 10)); //Объединение 8 ячейки 1 строки с 10 ячейкой 2 строки*/ for (int i = 2; i <= 14; i++) { oTable_1.Cell(1, i).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов } //oTable_1.Cell(1, 3).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов //oTable_1.Cell(2, 5).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов //oTable_1.Cell(2, 6).Range.Orientation = _Word.WdTextOrientation.wdTextOrientationUpward; //Направление текста вверх на 90 градусов for (int i = 0; i < classTable.Rows.Count; i++) { for (int j = 0; j <= 12; j++) { oTable_1.Cell(i + 2, j + 1).Range.Text = classTable.Rows[i][j].ToString(); } } for (int i = 2; i < oTable_1.Rows.Count; i++) { int sumColumn = 0; for (int j = 2; j <= 13; j++) { string _char = oTable_1.Cell(i, j).Range.Text.ToString(); _char = _char.Remove(_char.Length - 2, 2); sumColumn += int.Parse(_char); } oTable_1.Cell(i, 14).Range.Bold = 1; oTable_1.Cell(i, 14).Range.Text = sumColumn.ToString(); } oTable_1.Cell(2 + classTable.Rows.Count, 1).Range.Bold = 1; oTable_1.Cell(2 + classTable.Rows.Count, 1).Range.Text = "Итого"; for (int j = 2; j <= 14; j++) { int sumColumn = 0; for (int i = 2; i < oTable_1.Rows.Count; i++) { string _char = oTable_1.Cell(i, j).Range.Text.ToString(); _char = _char.Remove(_char.Length - 2, 2); sumColumn += int.Parse(_char); } oTable_1.Cell(2 + wordData.Rows.Count, j).Range.Bold = 1; oTable_1.Cell(2 + wordData.Rows.Count, j).Range.Text = sumColumn.ToString(); } _Word.Paragraph oPara6; oPara6 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara6.Range.Font.Bold = 0; oPara6.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara6.Range.Font.Name = "Times New Roman"; oPara6.Range.Font.Size = 14; //Размер шрифта абзаца oPara6.Format.SpaceAfter = 14; string itog_1 = oTable_1.Cell(oTable_1.Rows.Count, 14).Range.Text.ToString(); itog_1 = itog_1.Remove(itog_1.Length - 2, 2); string itog_list = ""; for (int i = 2; i <= 13; i++) { string sum = oTable_1.Cell(oTable_1.Rows.Count, i).Range.Text; sum = sum.Remove(sum.Length - 2, 2); string chld = ""; if (int.Parse(sum) > 0) { switch (int.Parse(sum.Substring(sum.Length - 1))) { case 1: chld = "ребенок"; break; case 2: case 3: case 4: chld = "ребенка"; break; default: chld = "детей"; break; } } if (i == 2) { if (int.Parse(sum) > 0) { itog_list = $"- {oTable_1.Cell(1, i).Range.Text.Remove(oTable_1.Cell(1, i).Range.Text.Length - 2, 2)} - {sum} {chld} ({Math.Round((double.Parse(sum) * 100) / double.Parse(itog_1),1)}%); \r\n"; } } else { if (int.Parse(sum) > 0) { itog_list += $"- {oTable_1.Cell(1, i).Range.Text.Remove(oTable_1.Cell(1, i).Range.Text.Length - 2, 2)} - {sum} {chld} ({Math.Round((double.Parse(sum) * 100) / double.Parse(itog_1), 1)}%); \r\n"; } } } string all_chld = ""; if (int.Parse(itog_1) > 0) { switch (int.Parse(itog_1.Substring(itog_1.Length - 1))) { case 1: all_chld = "ребенок"; break; case 2: case 3: case 4: all_chld = "ребенка"; break; default: all_chld = "детей"; break; } } if (PeriodDateFrom.ToString("MMMMyyyy") == PeriodDateTo.ToString("MMMMyyyy")) { oPara6.Range.Text = $"За {PeriodDateTo:MMMM yyyy} года включительно из детских оздоровительных организаций всех форм собственности в медицинские организации края обратилось(ись) {itog_1} {all_chld}, в том числе:\r\n{itog_list}"; } else if (PeriodDateFrom.ToString("yyyy") == PeriodDateTo.ToString("yyyy")) { oPara6.Range.Text = $"За {PeriodDateFrom:MMMM}-{PeriodDateTo:MMMM yyyy} года включительно из детских оздоровительных организаций всех форм собственности в медицинские организации края обратилось(ись) {itog_1} {all_chld}, в том числе:\r\n{itog_list}"; } else { oPara6.Range.Text = $"За {PeriodDateFrom:MMMM yyyy}-{PeriodDateTo:MMMM yyyy} года включительно из детских оздоровительных организаций всех форм собственности в медицинские организации края обратилось(ись) {itog_1} {all_chld}, в том числе:\r\n{itog_list}"; } oPara6.Range.InsertParagraphAfter(); string report_chld_org = ""; string report_chld_nonorg = ""; for (int i = 0; i < CHLDReport.Rows.Count; i++) { string str = CHLDReport.Rows[i][1].ToString(); switch (CHLDReport.Rows[i][0].ToString()) { case "Организованный отдых": switch (int.Parse(str.Substring(str.Length - 1))) { case 1: report_chld_org = "ребенку"; break; default: report_chld_org = "детям"; break; } break; case "Неорганизованный отдых": switch (int.Parse(str.Substring(str.Length - 1))) { case 1: report_chld_nonorg = "ребенку"; break; default: report_chld_nonorg = "детям"; break; } break; } } if (CHLDReport.Rows.Count > 1) { _Word.Paragraph oPara7; oPara7 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara7.Range.Font.Bold = 0; oPara7.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara7.Range.Font.Name = "Times New Roman"; oPara7.Range.Font.Size = 14; //Размер шрифта абзаца oPara7.Format.SpaceAfter = 14; oPara7.Range.Text = $"{CHLDReport.Rows[0][0]} - специализированная медицинская помощь оказана {CHLDReport.Rows[0][1]} {report_chld_org}."; oPara7.Range.InsertParagraphAfter(); _Word.Paragraph oPara8; oPara8 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara8.Range.Font.Bold = 0; oPara8.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara8.Range.Font.Name = "Times New Roman"; oPara8.Range.Font.Size = 14; //Размер шрифта абзаца oPara8.Format.SpaceAfter = 14; oPara8.Range.Text = $"{CHLDReport.Rows[1][0]} - специализированная медицинская помощь оказана {CHLDReport.Rows[1][1]} {report_chld_nonorg}."; oPara8.Range.InsertParagraphAfter(); } else if (CHLDReport.Rows.Count == 1) { _Word.Paragraph oPara7; oPara7 = WordDoc.Content.Paragraphs.Add(ref oMissing); oPara7.Range.Font.Bold = 0; oPara7.Range.Paragraphs.Alignment = _Word.WdParagraphAlignment.wdAlignParagraphJustify; oPara7.Range.Font.Name = "Times New Roman"; oPara7.Range.Font.Size = 14; //Размер шрифта абзаца oPara7.Format.SpaceAfter = 14; oPara7.Range.Text = $"{CHLDReport.Rows[0][0]} - специализированная медицинская помощь оказана {CHLDReport.Rows[0][1]} {report_chld_org}."; oPara7.Range.InsertParagraphAfter(); } // WordDoc.Paragraphs[WordDoc.Paragraphs.Count].Range.Delete(); //Удаление последнего пустого абзаца WordApp.Visible = true; } catch (Exception ex) { logger.Error(ex, $"\r\n#---------#\r\n{ex.StackTrace}\r\n##---------##\r\n{ex.Message}\r\n###---------###\r\n{ex.Source}"); MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void addTable(object bookmark, System.Data.DataTable dt) { try { int cols = dt.Columns.Count; int rows = dt.Rows.Count; object nothing = Missing.Value; Word.Range wrdRng = wDoc.Bookmarks.get_Item(ref bookmark).Range; Word.Table table = wDoc.Tables.Add(wrdRng, rows + 1, cols, ref nothing, ref nothing); table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; table.PreferredWidthType = Word.WdPreferredWidthType.wdPreferredWidthPercent; table.Columns[1].Width = 100; table.Columns[2].Width = 400; // table header for (int i = 0; i < cols; i++) { table.Cell(1, i + 1).Range.Text = dt.Columns[i].ColumnName; table.Cell(1, i + 1).Range.Shading.ForegroundPatternColor = Word.WdColor.wdColorGray25; table.Cell(1, i + 1).Height = 35; } object idx = 1; Word.ListTemplate listTemp = wApp.ListGalleries[Word.WdListGalleryType.wdNumberGallery] .ListTemplates.get_Item(ref idx); object bContinuousPrev = false; object applyTo = Missing.Value; object defaultListBehaviour = Missing.Value; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { Word.Cell cell = table.Cell(i + 2, j + 1); object obj = dt.Rows[i][j]; string txt = obj == null ? "" : obj.ToString(); string[] lines = txt.Split(new string[] { "^n" }, StringSplitOptions.RemoveEmptyEntries); cell.Range.Text = lines[0].Trim(); if (lines.Length > 1) { cell.Range.Paragraphs[1].Range.ListFormat.ApplyNumberDefault(); for (int k = 1; k < lines.Length; k++) { Word.Paragraph p = cell.Range.Paragraphs.Add(); p.Range.Text = lines[k].Trim(); p.Range.ListFormat.ApplyNumberDefault(); object o = p.Range.ParagraphStyle; } for (int k = 0; k < cell.Range.Paragraphs.Count; k++) { Word.Paragraph p = cell.Range.Paragraphs[k + 1]; p.Range.ListFormat.ApplyListTemplate(listTemp, bContinuousPrev, applyTo, defaultListBehaviour); p.Range.Select(); wApp.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceExactly; wApp.Selection.ParagraphFormat.LineSpacing = 14f; wApp.Selection.ParagraphFormat.LineUnitAfter = 0.5f; } } } } } catch (Exception) { } }
int nToolTipIndex; // Выбранный элемент в CheckedListBox #endregion Variables #region Functions /// <summary> /// Функция для записи списка тест кейсов в Word /// </summary> private void WriteToFile(object objectClass) { try { CItemsForWriteToFile cItemsForWriteToFile = (CItemsForWriteToFile)objectClass; // Пока идет запись тест кейсов в файл Word // отключить кнопки btnWriteInFile.Invoke((MethodInvoker) delegate { btnWriteInFile.Enabled = false; }); btnWriteToFile_Queries.Invoke((MethodInvoker) delegate { btnWriteToFile_Queries.Enabled = false; }); progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Show(); progressBar2.Minimum = 0; progressBar2.Maximum = 100; progressBar2.Value = 0; }); Word.Application application = new Word.Application(); Word.Document document = application.Documents.Add(); Word.Range range = document.Range(); Word.Paragraph paragraph = document.Paragraphs.Add(); progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Value = 30; }); Word.ListGallery listGallery = application.ListGalleries[WdListGalleryType.wdOutlineNumberGallery]; Word.ListTemplate listTemplate = listGallery.ListTemplates[5]; listTemplate.ListLevels[1].NumberPosition = application.CentimetersToPoints(0f); listTemplate.ListLevels[1].Font.Size = 11f; progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Value = 40; }); listTemplate.ListLevels[2].NumberPosition = application.CentimetersToPoints(0.63f); listTemplate.ListLevels[2].Font.Size = 11f; progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Value = 50; progressBar2.Step = cItemsForWriteToFile.testCaseList.Count; }); // Выполнить запись в файл Word для выбранных элементов из clbTestCases foreach (int Index in cItemsForWriteToFile.checkedListBox.CheckedIndices) { wordFileClass.CreateMultiLevelList(paragraph, listTemplate, cItemsForWriteToFile.testCaseList, Index); progressBar2.Invoke((MethodInvoker) delegate { progressBar2.PerformStep(); }); } paragraph.Range.SetListLevel(1); progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Value = 100; }); // Показать результат записи в файл progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Hide(); application.Visible = true; }); // Активировать кнопки в конце выполнения записи в файл btnWriteInFile.Invoke((MethodInvoker) delegate { btnWriteInFile.Enabled = true; }); btnWriteToFile_Queries.Invoke((MethodInvoker) delegate { btnWriteToFile_Queries.Enabled = true; }); } catch { // Показать результат записи в файл progressBar2.Invoke((MethodInvoker) delegate { progressBar2.Value = 0; progressBar2.Hide(); progressBar2.Hide(); }); // Активировать кнопки в конце выполнения записи в файл btnWriteInFile.Invoke((MethodInvoker) delegate { btnWriteInFile.Enabled = true; }); btnWriteToFile_Queries.Invoke((MethodInvoker) delegate { btnWriteToFile_Queries.Enabled = true; }); } }