using Microsoft.Office.Interop.Word;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void
button1_Click(object sender, EventArgs e)
{
CreateDocument();
}
public static string SaveToTemporaryFile(string html)
{
string htmlTempFilePath = Path.Combine(Path.GetTempPath(),
string.Format("{0}.html", Path.GetRandomFileName()));
using (StreamWriter writer = File.CreateText(htmlTempFilePath))
{
html = string.Format("<html>{0}</html>", html);
writer.WriteLine(html);
}
return htmlTempFilePath;
}
private void
CreateDocument()
{
string html = @"<div>Test
Jainik</div>
<div>Test is test html
file</div>
<div>Test
3</div>";
try
{
//Create an
instance for word app
Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application();
//Set
animation status for word application
winword.ShowAnimation = false;
//Set
status for word application is to be visible or not.
winword.Visible = false;
//Create
a missing variable for missing value
object missing = System.Reflection.Missing.Value;
//Create
a new document
Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);
//Add
header into the document
foreach (Microsoft.Office.Interop.Word.Section section in
document.Sections)
{
Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage);
headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
headerRange.Font.ColorIndex
= Microsoft.Office.Interop.Word.WdColorIndex.wdBlue;
headerRange.Font.Size = 10;
headerRange.Text = "Header text goes here";
}
//Add the
footers into the document
foreach (Microsoft.Office.Interop.Word.Section wordSection in
document.Sections)
{
Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
footerRange.Font.ColorIndex
= Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed;
footerRange.Font.Size =10;
footerRange.ParagraphFormat.Alignment
= Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
footerRange.Text = "Footer text goes here";
}
//adding
text to document
document.Content.SetRange(0, 0);
// System.Text.RegularExpressions.Regex rx = new
System.Text.RegularExpressions.Regex("<[^>]*>");
//
replace all matches with empty strin
// string str =
rx.Replace("<html><body><h1>Jainik</h1></body></html>",
"");
//
document.Content.Text = pasteHTML("") + Environment.NewLine;
// document.Content.HTMLDivisions.Add("<html><body><h1>Jainik</h1></body></html>");
//Add
paragraph with Heading 1 style
Microsoft.Office.Interop.Word.Paragraph para1 =
document.Content.Paragraphs.Add(ref missing);
//object
styleHeading1 = "Heading 1";
////
para1.Range.set_Style(ref styleHeading1);
////
document.ActiveWindow.View.Type =
Microsoft.Office.Interop.Word.WdViewType.wdPrintView;
//para1.Range.Text
= "<html><body><h1>Jainik</h1></body></html>";
//para1.Format.Application.ActiveWindow.View.Type
= Microsoft.Office.Interop.Word.WdViewType.wdPrintView;
//para1.Range.InsertParagraphAfter();
ContentControl contentControl = document.ContentControls.Add(WdContentControlType.wdContentControlRichText,
ref missing);
contentControl.Title = "This is html content";
contentControl.Range.InsertFile(SaveToTemporaryFile(html), ref missing, ref missing, ref missing, ref missing);
//Add
paragraph with Heading 2 style
Microsoft.Office.Interop.Word.Paragraph para2 =
document.Content.Paragraphs.Add(ref missing);
object styleHeading2 = "Heading 2";
para2.Range.set_Style(ref styleHeading2);
para2.Range.Text = "Para 2 text";
para2.Range.InsertParagraphAfter();
//Create
a 5X5 table and insert some dummy record
Table firstTable = document.Tables.Add(para1.Range, 5, 5, ref missing, ref missing);
firstTable.Borders.Enable = 1;
foreach (Row row in firstTable.Rows)
{
foreach (Cell cell in row.Cells)
{
//Header row
if (cell.RowIndex == 1)
{
cell.Range.Text = "Column " +
cell.ColumnIndex.ToString();
cell.Range.Font.Bold = 1;
//other format properties goes here
cell.Range.Font.Name = "verdana";
cell.Range.Font.Size = 10;
//cell.Range.Font.ColorIndex = WdColorIndex.wdGray25;
cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25;
//Center alignment for the Header cells
cell.VerticalAlignment
= WdCellVerticalAlignment.wdCellAlignVerticalCenter;
cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
}
//Data row
else
{
cell.Range.Text =
(cell.RowIndex - 2 + cell.ColumnIndex).ToString();
}
}
}
//Save
the document
object filename = @"d:\temp1.docx";
document.Activate();
document.ActiveWindow.View.Type
= Microsoft.Office.Interop.Word.WdViewType.wdPrintView;
document.SaveAs(ref filename, WdSaveFormat.wdFormatDocumentDefault);
document.Close(ref missing, ref missing, ref missing);
document = null;
winword.Quit(ref missing, ref missing, ref missing);
winword = null;
MessageBox.Show("Document created
successfully !");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
No comments:
Post a Comment