1.引入元件
Imports System.IO
Imports word = Microsoft.Office.Interop.Word
Imports System.Text
2.代码
Public Function DocProcess(ByVal strCnoCode As String, ByVal strCnoCount As String) As Boolean
Dim boolFlag As Boolean = False
Dim dt As New DataTable
dt = GetCnoItem(strCnoCode.Trim) '从数据库获得一个DataTable
Try
Dim strFileName As String = CreateFile(strCnoCode.Trim) '取得文件名
'以下为定义相关变量
Dim objmissing As Object = System.Reflection.Missing.Value
Dim wordApp As New word.Application
Dim wordDoc As New word.Document
Dim oTable As word.Table
wordApp.Documents.Add(objmissing, objmissing, objmissing, objmissing)
wordDoc = wordApp.ActiveDocument
'-------------------设置Word为横式(如果不知道怎么写录制Word宏)----------------------------
With wordDoc.PageSetup
.LineNumbering.Active = False
.Orientation = word.WdOrientation.wdOrientLandscape
.TopMargin = wordApp.CentimetersToPoints(3.17)
.BottomMargin = wordApp.CentimetersToPoints(3.17)
.LeftMargin = wordApp.CentimetersToPoints(2.54)
.RightMargin = wordApp.CentimetersToPoints(2.54)
.Gutter = wordApp.CentimetersToPoints(0)
.HeaderDistance = wordApp.CentimetersToPoints(1.5)
.FooterDistance = wordApp.CentimetersToPoints(1.75)
.PageWidth = wordApp.CentimetersToPoints(29.7)
.PageHeight = wordApp.CentimetersToPoints(21)
.FirstPageTray = word.WdPaperTray.wdPrinterDefaultBin
.OtherPagesTray = word.WdPaperTray.wdPrinterDefaultBin
.SectionStart = word.WdSectionStart.wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = word.WdVerticalAlignment.wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.BookFoldPrinting = False
.BookFoldRevPrinting = False
.BookFoldPrintingSheets = 1
.GutterPos = word.WdGutterStyle.wdGutterPosLeft
.LayoutMode = word.WdLayoutMode.wdLayoutModeLineGrid
End With
'--------------------------------------------------------------------
'绘制一个表格写入到Word
oTable = wordDoc.Tables.Add(wordDoc.Range(objmissing, objmissing), dt.Rows.Count + 1, 5, objmissing, objmissing)
oTable.Cell(1, 1).Range.InsertAfter("第一列") '写入列名
oTable.Cell(1, 2).Range.InsertAfter("第二列")
oTable.Cell(1, 3).Range.InsertAfter("第三列")
oTable.Cell(1, 4).Range.InsertAfter("第四列")
oTable.Cell(1, 5).Range.InsertAfter("第五列")
'循环DataTable将数据加入到绘制的表格
For i As Integer = 0 To dt.Rows.Count - 1
oTable.Cell(i + 2, 1).Range.InsertAfter(dt.Rows(i)(0).ToString.Trim)
oTable.Cell(i + 2, 2).Range.InsertAfter(dt.Rows(i)(1).ToString.Trim)
oTable.Cell(i + 2, 3).Range.InsertAfter(dt.Rows(i)(4).ToString.Trim)
oTable.Cell(i + 2, 4).Range.InsertAfter(dt.Rows(i)(5).ToString.Trim)
oTable.Cell(i + 2, 5).Range.InsertAfter(dt.Rows(i)(6).ToString.Trim)
Next
'设置表格边框样式
oTable.Borders.InsideLineStyle = word.WdLineStyle.wdLineStyleSingle
oTable.Borders.OutsideLineStyle = word.WdLineStyle.wdLineStyleSingle
wordApp.Visible = False
'保存Word
wordApp.ActiveDocument.SaveAs(strFileName, objmissing, objmissing, objmissing, objmissing, objmissing)
'关闭该文档的写入
wordApp.ActiveDocument.Close()
'退出Word进程
wordApp.Quit()
boolFlag = True
Catch ex As Exception
WriteLog(strCnoCode + "写入错误")
End Try
Return boolFlag
End Function