这是引用(陈建华的源码): 这是将datagrid导入到word '下面的程序是将一个MSHFLEXGRID表格导出成WORD表格.你可以修改一下,将 'MainFrm.MainGrid.TextMatrix(J, i) 替换成相对应的RS值.Sub WordOut(OFile As String) '导出为WORD文件 Dim i As Integer, J As Integer, Col As Integer, Row As Integer Dim CellContent As String Dim Cols As Long, GridRow As Long Dim TmpText As String Dim AppID, ReturnValue As Long Dim MsWord As Object
On Error Resume Next Set MsWord = CreateObject("Word.Basic") If (MsWord Is Nothing) Then MsgBox "你的系统中没有安装Word!", vbOKOnly + 16, "成绩统计!" Exit Sub End If Screen.MousePointer = 11 GridRow = MainFrm.MainGrid.Rows - 5 Cols = MainFrm.MainGrid.Cols - 1 '表格的列数 FullBar.Max = MaxVal + 1 FullBar.Value = 0 NewVal = 0: OleVal = 0 FullBar.Visible = True DoEvents Row = GridRow '打印表的行数 MsWord.FileNewDefault MsWord.leftpara MsWord.screenupdating 0 MsWord.tableinserttable , Cols, GridRow, , , 0, 0 '建立的表格大小 MsWord.startofdocument For J = 5 To GridRow + 4 ' 表格的行数 For i = 0 To Cols TmpText = MainFrm.MainGrid.TextMatrix(J, i) If J = 5 Then If i > 4 And i < Cols - 3 And i Mod 2 = 0 Then TmpText = "名次" End If CellContent$ = TmpText MsWord.Insert CellContent$ MsWord.NextCell Next i NewVal = J * MaxVal \ (GridRow + 5) If OleVal <> NewVal Then FullBar.Value = NewVal OleVal = NewVal End If Next J MsWord.tabledeleterow MsWord.startofdocument MsWord.tableselectrow MsWord.tableheadings 1 MsWord.centerpara MsWord.screenrefresh MsWord.screenupdating 1 FullBar.Value = FullBar.Max MsWord.FILESaveAS OFile DoEvents Screen.MousePointer = 0 If Err.Number <> 0 Then MsgBox Error(Err.Number), vbOKOnly + 16, "成绩统计!" Err.Cls End If MsWord.FileClose MsWord.quit Set MsWord = Nothing DoEvents: Me.Show End Sub
工程->引用->Microsoft Word 9.0 Object Library (后面为版本号)Dim wdApp as New Word.Application具体怎么操作你可以到WORD中录制宏看看就知道了!!
这是将datagrid导入到word
'下面的程序是将一个MSHFLEXGRID表格导出成WORD表格.你可以修改一下,将
'MainFrm.MainGrid.TextMatrix(J, i) 替换成相对应的RS值.Sub WordOut(OFile As String) '导出为WORD文件
Dim i As Integer, J As Integer, Col As Integer, Row As Integer
Dim CellContent As String
Dim Cols As Long, GridRow As Long
Dim TmpText As String
Dim AppID, ReturnValue As Long
Dim MsWord As Object
On Error Resume Next
Set MsWord = CreateObject("Word.Basic")
If (MsWord Is Nothing) Then
MsgBox "你的系统中没有安装Word!", vbOKOnly + 16, "成绩统计!"
Exit Sub
End If
Screen.MousePointer = 11
GridRow = MainFrm.MainGrid.Rows - 5
Cols = MainFrm.MainGrid.Cols - 1 '表格的列数
FullBar.Max = MaxVal + 1
FullBar.Value = 0
NewVal = 0: OleVal = 0
FullBar.Visible = True
DoEvents
Row = GridRow '打印表的行数
MsWord.FileNewDefault
MsWord.leftpara
MsWord.screenupdating 0
MsWord.tableinserttable , Cols, GridRow, , , 0, 0 '建立的表格大小
MsWord.startofdocument
For J = 5 To GridRow + 4 ' 表格的行数
For i = 0 To Cols
TmpText = MainFrm.MainGrid.TextMatrix(J, i)
If J = 5 Then
If i > 4 And i < Cols - 3 And i Mod 2 = 0 Then TmpText = "名次"
End If
CellContent$ = TmpText
MsWord.Insert CellContent$
MsWord.NextCell
Next i
NewVal = J * MaxVal \ (GridRow + 5)
If OleVal <> NewVal Then
FullBar.Value = NewVal
OleVal = NewVal
End If
Next J
MsWord.tabledeleterow
MsWord.startofdocument
MsWord.tableselectrow
MsWord.tableheadings 1
MsWord.centerpara
MsWord.screenrefresh
MsWord.screenupdating 1
FullBar.Value = FullBar.Max
MsWord.FILESaveAS OFile
DoEvents
Screen.MousePointer = 0
If Err.Number <> 0 Then
MsgBox Error(Err.Number), vbOKOnly + 16, "成绩统计!"
Err.Cls
End If
MsWord.FileClose
MsWord.quit
Set MsWord = Nothing
DoEvents: Me.Show
End Sub