public void AddSpan(string condicao) { //add o span na selecao Range.InsertBefore("["); Range.InsertAfter("]"); Range.Select(); Range.Application.Selection.Font.Color = Word.WdColor.wdColorRed; Range.Start = Range.Start + 1; Range.Select(); Range.InsertBefore(condicao); Range.End = Range.Start + condicao.Length; Range.Select(); Range.Application.Selection.Font.Subscript = -1; }
//Metodo generico para adicionar repetir public void AddRepetir(string numContato) { Word.Range RangeRepetir = Range; string repetir = string.Format("repetir 1 até {0} pontuacao \"; |; e |.\"", numContato); RangeRepetir.InsertBefore("["); RangeRepetir.InsertAfter("{sinal}]"); RangeRepetir.Select(); RangeRepetir.Start = RangeRepetir.Start + 1; RangeRepetir.Select(); RangeRepetir.InsertBefore(repetir); RangeRepetir.End = RangeRepetir.Start + repetir.Length; RangeRepetir.Select(); RangeRepetir.Application.Selection.Font.Subscript = -1; }
public void CreateSpecialInstructions(string txt, Word.Document wordDoc) { object endOfDoc = "\\endofdoc"; Word.Range range = wordDoc.Bookmarks.get_Item(ref endOfDoc).Range; range.InsertBefore(txt); }
//</Snippet82> //--------------------------------------------------------------------- //<Snippet89> private void CreateDocumentPropertyTable() { //<Snippet90> object start = 0, end = 0; Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Range(ref start, ref end); //</Snippet90> // Insert a title for the table and paragraph marks. //<Snippet91> rng.InsertBefore("Document Statistics"); rng.Font.Name = "Verdana"; rng.Font.Size = 16; rng.InsertParagraphAfter(); rng.InsertParagraphAfter(); rng.SetRange(rng.End, rng.End); //</Snippet91> // Add the table. //<Snippet92> rng.Tables.Add(document.Paragraphs[2].Range, 3, 2, ref missing, ref missing); //</Snippet92> // Format the table and apply a style. //<Snippet93> Word.Table tbl = document.Tables[1]; tbl.Range.Font.Size = 12; tbl.Columns.DistributeWidth(); object styleName = "Table Professional"; tbl.set_Style(ref styleName); //</Snippet93> // Insert document properties into cells. //<Snippet94> tbl.Cell(1, 1).Range.Text = "Document Property"; tbl.Cell(1, 2).Range.Text = "Value"; tbl.Cell(2, 1).Range.Text = "Subject"; tbl.Cell(2, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties)) [Word.WdBuiltInProperty.wdPropertySubject].Value.ToString(); tbl.Cell(3, 1).Range.Text = "Author"; tbl.Cell(3, 2).Range.Text = ((Office.DocumentProperties)(document.BuiltInDocumentProperties)) [Word.WdBuiltInProperty.wdPropertyAuthor].Value.ToString(); //</Snippet94> }
private void ApplyNewIndentation(List <Word.Paragraph> pars, int[] indent) { int i = 0; foreach (Word.Paragraph par in pars) { if (indent[i] > 0) { string insert = new String(IndentUnit, indentRepeat * indent[i]); Word.Range range = par.Range; range.InsertBefore(insert); } i++; } }
public void AdicionarSpan() { range.SetRange(Globals.ThisAddIn.Application.Selection.Start, Globals.ThisAddIn.Application.Selection.End); string spanContent = range.Text; range.Text = textoCampo; range.InsertBefore("["); range.InsertAfter("]"); range.SetRange(range.Start + 1, range.End - 1); range.Select(); range.Font.Subscript = 1; range.SetRange(range.End, range.End); range.Text = spanContent; range.Select(); range.Font.Subscript = 0; }
/// <summary> /// Insert download links into a Word message body /// </summary> /// <param name="transferPackage"></param> private void InsertLinksIntoWordBody(string insString) { //See: http://msdn2.microsoft.com/en-us/library/bb386277.aspx (text) //See: http://msdn2.microsoft.com/en-us/library/bb157878.aspx (tables) //and for an introduction see also... //See: http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx //See: http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx //See: http://msdn2.microsoft.com/en-us/library/bb407305(VS.80).aspx //See: http://support.microsoft.com/kb/316384 object objMissing = System.Reflection.Missing.Value; object objTrue = true; object objFalse = false; object objStartOfDoc = "\\startofdoc"; /* \startofdoc is a predefined bookmark */ object objEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ //object objParagraphUnit = Word.WdUnits.wdParagraph; //object objCountOne = 1; object objStart = 0; object objEnd = 0; System.Diagnostics.Debug.Assert(this.Inspector.EditorType == Outlook.OlEditorType.olEditorWord); Word.Document objDocument = this.Inspector.WordEditor as Word.Document; if (objDocument == null) { return; //Not much we can do in this case } #if !DEBUG //Improve performances objDocument.Application.Options.Pagination = false; objDocument.Application.ScreenUpdating = false; #endif #region Insert advertisement at the beginning of the document. //Add a paragraph before creating the table Word.Range objTopOfMessageRange = objDocument.Bookmarks.get_Item(ref objStartOfDoc).Range; System.Diagnostics.Debug.Assert(objTopOfMessageRange.Text == null); objTopOfMessageRange.InsertBefore(insString); #endregion }
public void Otchet_To_Word(DataGridView dataGridViewMain, string filename)// Метод экспорта в Word { Word.Document oDoc = new Word.Document(); oDoc.Application.Visible = true; //ориентация страницы oDoc.PageSetup.Orientation = Word.WdOrientation.wdOrientPortrait; // Стиль текста. object start = 0, end = 0; Word.Range rng = oDoc.Range(ref start, ref end); rng.InsertBefore("Отчет");//Заголовок rng.Font.Name = "Times New Roman"; rng.Font.Size = 12; rng.InsertParagraphAfter(); rng.InsertParagraphAfter(); rng.SetRange(rng.End, rng.End); oDoc.Content.ParagraphFormat.LeftIndent = oDoc.Content.Application.CentimetersToPoints(0); // отступ слева oDoc.Paragraphs.Format.FirstLineIndent = 0; //Отступ первой строки oDoc.Paragraphs.Format.LineSpacing = 8; //межстрочный интервал в первом абзаце.(высота строк) oDoc.Paragraphs.Format.SpaceBefore = 3; //межстрочный интервал перед первым абзацем. oDoc.Paragraphs.Format.SpaceAfter = 1; //межстрочный интервал после первого абзаца. if (dataGridViewMain.Rows.Count != 0) { //удаление столбца //this.dataGridView1.Columns.RemoveAt(4);//дата записи string kol_vo = Convert.ToString(textBoxAmount.Text); //кол-во string sum = Convert.ToString(textBoxSumm.Text); //сумма DateTime month = Convert.ToDateTime(dataGridViewMain.Rows[0].Cells[4].Value); int RowCount = dataGridViewMain.Rows.Count; int ColumnCount = dataGridViewMain.Columns.Count - 1;// столбцы в гриде (-5 последних) Object[,] DataArray = new object[RowCount + 1, ColumnCount + 1]; // добавить строки int r = 0; for (int c = 0; c <= ColumnCount - 1; c++) { for (r = 0; r <= RowCount - 1; r++) { DataArray[r + 1, c] = dataGridViewMain.Rows[r].Cells[c].Value;// +1 это первая строка в таблице над заголовком } //Конец цикла строки } //конец петли колонки //Добавление текста в документ oDoc.Content.SetRange(0, 0);// для текстовых строк oDoc.Content.Text = " Кол-во: " + kol_vo + " Сумма: " + sum + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + "Начальник транспортного отдела " + Environment.NewLine + Environment.NewLine + "______________________________" + Environment.NewLine; dynamic oRange = oDoc.Content.Application.Selection.Range; string oTemp = ""; for (r = 0; r <= RowCount - 1; r++) { for (int c = 0; c <= ColumnCount - 1; c++) { oTemp = oTemp + DataArray[r, c] + "\t"; } } //формат таблицы oRange.Text = oTemp; object Separator = Word.WdTableFieldSeparator.wdSeparateByTabs; object ApplyBorders = true; object AutoFit = true; object AutoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitContent; oRange.ConvertToTable(ref Separator, ref RowCount, ref ColumnCount, Type.Missing, Type.Missing, ref ApplyBorders, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, ref AutoFit, ref AutoFitBehavior, Type.Missing); oRange.Select(); oDoc.Application.Selection.Tables[1].Select(); oDoc.Application.Selection.Tables[1].Rows.AllowBreakAcrossPages = 0; oDoc.Application.Selection.Tables[1].Rows.Alignment = 0; oDoc.Application.Selection.Tables[1].Rows[1].Select(); oDoc.Application.Selection.InsertRowsAbove(1); oDoc.Application.Selection.Tables[1].Rows[1].Select(); //стиль строки заголовка oDoc.Application.Selection.Tables[1].Rows[1].Range.Bold = 1; oDoc.Application.Selection.Tables[1].Rows[2].Range.Bold = 1; oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Name = "Times New Roman"; oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Size = 9; //добавить строку заголовка вручную for (int c = 0; c <= ColumnCount - 1; c++) { oDoc.Application.Selection.Tables[1].Cell(1, c + 1).Range.Text = ""; oDoc.Application.Selection.Tables[1].Cell(2, c + 1).Range.Text = dataGridViewMain.Columns[c].HeaderText; } //стиль таблицы oDoc.Application.Selection.Tables[1].Columns[3].Delete(); //Удалить столбец oDoc.Application.Selection.Tables[1].Columns[3].Delete(); //Удалить столбец oDoc.Application.Selection.Tables[1].Columns[4].Delete(); //Удалить столбец oDoc.Application.Selection.Tables[1].Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //Выравнивание текста в таблице по центру oDoc.Application.Selection.Tables[1].Rows.Borders.Enable = 1; //borders oDoc.Application.Selection.Tables[1].Rows[1].Select(); oDoc.Application.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; oDoc.Application.Selection.Tables[1].Columns[1].Width = 120; //ширина столбца oDoc.Application.Selection.Tables[1].Columns[2].Width = 120; //ширина столбца oDoc.Application.Selection.Tables[1].Columns[3].Width = 80; //ширина столбца oDoc.Application.Selection.Tables[1].Columns[4].Width = 80; //ширина столбца oDoc.Application.Selection.Tables[1].Columns[5].Width = 120; //ширина столбца //oDoc.Application.Selection.Tables[1].Columns[6].Width = 60;//ширина столбца //oDoc.Application.Selection.Tables[1].Columns[7].Width = 80;//ширина столбца oDoc.Application.Selection.Tables[1].LeftPadding = 1; //отступ с лева полей ячеек oDoc.Application.Selection.Tables[1].RightPadding = 1; //отступ с права полей ячеек oDoc.Application.Selection.Tables[1].Rows.LeftIndent = -30; //Установка отступа слева //oDoc.Application.Selection.Tables[1].Cell(1, 2).Range.Text = "текст в ячейке"; //oDoc.Application.Selection.Tables[1].Cell(1, 2).Merge(oDoc.Application.Selection.Tables[1].Cell(1, 4));//Объединение //текст заголовка foreach (Word.Section section in oDoc.Application.ActiveDocument.Sections) { // Верхний колонтитул DateTime Now = DateTime.Now; Word.Range headerRange = section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range; headerRange.Fields.Add(headerRange, Word.WdFieldType.wdFieldPage); section.PageSetup.DifferentFirstPageHeaderFooter = -1;//Включить особый колонтитул headerRange.Text = Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + "Сводный отчет" + Environment.NewLine + "по ремонту и обслуживанию автомобилей" + Environment.NewLine + "ГП Службы специальной связи" + Environment.NewLine + "с " + Convert.ToString(dateTimePickerStart.Value.ToString("dd.MM.yyyy")) + " по " + Convert.ToString(dateTimePickerEnd.Value.ToString("dd.MM.yyyy")) + Environment.NewLine; headerRange.Font.Size = 14; headerRange.Font.Name = "Times New Roman"; headerRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; // Нижний колонтитул Word.Range footerRange = section.Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; footerRange.Fields.Add(footerRange, Word.WdFieldType.wdFieldPage); footerRange.Text = "Служба специальной связи " + Convert.ToString(Now.ToString("dd.MM.yyyy")); footerRange.Font.Size = 9; footerRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft; } //сохранить файл oDoc.SaveAs(filename); } }
public void Export_Data_To_Word2(DataGridView dataGridView2, string filename)//Обработчик Word МБП { Word.Document oDoc = new Word.Document(); oDoc.Application.Visible = true; //ориентация страницы oDoc.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape; // Стиль текста. object start = 0, end = 0; Word.Range rng = oDoc.Range(ref start, ref end); rng.InsertBefore("Заголовок");//Заголовок rng.Font.Name = "Times New Roman"; rng.Font.Size = 9; rng.InsertParagraphAfter(); rng.InsertParagraphAfter(); rng.SetRange(rng.End, rng.End); oDoc.Content.ParagraphFormat.LeftIndent = oDoc.Content.Application.CentimetersToPoints(0); // отступ слева if (dataGridView2.Rows.Count != 0) { int RowCount = dataGridView2.Rows.Count; int ColumnCount = dataGridView2.Columns.Count; Object[,] DataArray = new object[RowCount + 1, ColumnCount + 1]; // добавить строки int r = 0; for (int c = 0; c <= ColumnCount - 1; c++) { for (r = 0; r <= RowCount - 1; r++) { DataArray[r, c] = dataGridView2.Rows[r].Cells[c].Value; } //Конец цикла строки } //конец петли колонки //Добавление текста в документ string saldo_nachalo = Convert.ToString(textBox8.Text);//Сальдо начало string saldo_konec = Convert.ToString(textBox9.Text);//Сальдо конец oDoc.Content.SetRange(0, 0); oDoc.Content.Text = "Сальдо на начало: " + saldo_nachalo + " Сальдо на конец: " + saldo_konec + Environment.NewLine + Environment.NewLine + "Выполнил__________________" + " " + "Принял_____________________" + Environment.NewLine; dynamic oRange = oDoc.Content.Application.Selection.Range; string oTemp = ""; for (r = 0; r <= RowCount - 1; r++) { for (int c = 0; c <= ColumnCount - 1; c++) { oTemp = oTemp + DataArray[r, c] + "\t"; } } //формат таблицы oRange.Text = oTemp; object Separator = Word.WdTableFieldSeparator.wdSeparateByTabs; object ApplyBorders = true; object AutoFit = true; object AutoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitContent; oRange.ConvertToTable(ref Separator, ref RowCount, ref ColumnCount, Type.Missing, Type.Missing, ref ApplyBorders, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, ref AutoFit, ref AutoFitBehavior, Type.Missing); oRange.Select(); oDoc.Application.Selection.Tables[1].Select(); oDoc.Application.Selection.Tables[1].Rows.AllowBreakAcrossPages = 0; oDoc.Application.Selection.Tables[1].Rows.Alignment = 0; oDoc.Application.Selection.Tables[1].Rows[1].Select(); oDoc.Application.Selection.InsertRowsAbove(1); oDoc.Application.Selection.Tables[1].Rows[1].Select(); //заголовка стиль строки oDoc.Application.Selection.Tables[1].Rows[1].Range.Bold = 1; oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Name = "Times New Roman"; oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Size = 9; //добавить строку заголовка вручную for (int c = 0; c <= ColumnCount - 1; c++) { oDoc.Application.Selection.Tables[1].Cell(1, c + 1).Range.Text = dataGridView2.Columns[c].HeaderText; } //стиль таблицы oDoc.Application.Selection.Tables[1].Rows.Borders.Enable = 1;//borders oDoc.Application.Selection.Tables[1].Rows[1].Select(); oDoc.Application.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; //текст заголовка foreach (Word.Section section in oDoc.Application.ActiveDocument.Sections) {//Верхний колонтитул DateTime Now = DateTime.Now; Word.Range headerRange = section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range; headerRange.Fields.Add(headerRange, Word.WdFieldType.wdFieldPage); section.PageSetup.DifferentFirstPageHeaderFooter = -1;//Включить особый колонтитул headerRange.Text = "Отчет №_"; headerRange.Font.Size = 12; headerRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //Нижний колонтитул Word.Range footerRange = section.Footers[Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range; footerRange.Fields.Add(footerRange, Word.WdFieldType.wdFieldPage); footerRange.Text = "ГП Служба специальной связи " + Convert.ToString(Now.ToString("dd:MM:yyyy")); footerRange.Font.Size = 9; footerRange.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft; } //сохранить файл oDoc.SaveAs(filename); } }