Export the content of DataGridView to Word Document in vb.net

Several days past i got a comment of my user on the article ‘Create a new Word document using VB.Net‘. He was facing the trouble to export the image to Word document. He wrote his problem as:

I have a Datagridview and all those three fields has been showed in the Datagridview , I have a button Called ” Export to Word”.

There are three columns in the DataGridView, one of them is image type and now we need to export all the content of this Datagridview to the table in the word document. My example contains a DataGridView control named ‘DataGridView1’ that have three columns. Two columns are the TextBox Columns and rest one is of the Image type.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub
    Private Sub BindGrid()
        DataGridView1.Rows(0).Cells(0).Value = 1
        DataGridView1.Rows(0).Cells(1).Value = "Mohan"
        Dim _cellimage As New DataGridViewImageCell
            DataGridView1.Rows(0).Cells(2).Value = Image.FromFile("D:\Closed.png")
        Catch ex As Exception
        End Try
    End Sub

There is another button control ‘Export to Document’. On the Click of this button, we will export the content of the datagridview to word document.

    Private Sub btnExport_Click(ByVal sender As System.Object, _
                     ByVal e As System.EventArgs) Handles btnExport.Click
    End Sub

The below function will create a word document and export the datagridview.

    Private Sub CreateWordDocument()
        Dim objWord As Word.Application
        Dim objDoc As Word.Document
        objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objDoc = objWord.Documents.Add
        Dim _RowCount As Integer = DataGridView1.Rows.Count - 1
        Dim _ColCount As Integer = DataGridView1.Columns.Count - 1
        Dim ht1 As Word.Table
        ht1 = objDoc.Tables.Add(objDoc.Bookmarks.Item("\endofdoc").Range, _
                                _RowCount + 1, _ColCount + 1)
        ht1.Borders.OutsideColor = Word.WdColor.wdColorBlack
        ht1.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle
        ht1.Borders.InsideColor = Word.WdColor.wdColorBlack
        ht1.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle
        For i As Integer = 0 To _RowCount
            For _col As Integer = 0 To _ColCount
                Dim colType As Type = DataGridView1.Columns(_col).GetType
                If colType.Name = "DataGridViewImageColumn" Then
                    Dim _image As Image = DirectCast(DataGridView1.Rows(i).Cells(_col).Value, Image)
                    ht1.Cell(i + 1, _col + 1).Range.Paste()
                    ht1.Cell(i + 1, _col + 1).Range.Text = _
                End If
    End Sub

If you get error in the Following line:
Dim _image As Image = DirectCast(DataGridView1.Rows(i).Cells(_col).Value, Image)

Try to replace this line with the following (Suggested by: Xabier Aberasturi)
(Put “FormattedValue” instead of “Value”)
Dim _image As Image = DirectCast(DataGridView1.Rows(i).Cells(_col).FormattedValue, Image)

How to move an appointment item from one to another shared calendar in Outlook custom form’s Script

You can use the following code to move the current appointment item from one calendar to shared calendar, let’s say you are working on Appointment custom form and want to move the current item to another exchange server’s shared calendar. You can use Item.Move function on the Item_write() procedure in the custom form’s vb script. Continue reading “How to move an appointment item from one to another shared calendar in Outlook custom form’s Script”

Searching in Word document in C#

We can search some specified text in Microsoft Office Word documents with the help of Find() method, The following example shows how we can search text in document in C# language. This article is copy of the its original post in the C#
For it first we need to add reference of Microsoft.Office.Interop.Word library. Continue reading “Searching in Word document in C#”