1
Public Class WordOpLib
2
3
4
Private oWordApplic As Word.ApplicationClass
5
Private oDocument As Word.Document
6
Private oRange As Word.Range
7
Private oShape As Word.Shape
8
Private oSelection As Word.Selection
9
10
11
Public Sub New()
12
'激活com word接口
13
oWordApplic = New Word.ApplicationClass
14
oWordApplic.Visible = False
15
16
End Sub
17
'设置选定文本
18
Public Sub SetRange(ByVal para As Integer)
19
oRange = oDocument.Paragraphs(para).Range
20
oRange.Select()
21
End Sub
22
Public Sub SetRange(ByVal para As Integer, ByVal sent As Integer)
23
oRange = oDocument.Paragraphs(para).Range.Sentences(sent)
24
oRange.Select()
25
End Sub
26
Public Sub SetRange(ByVal startpoint As Integer, ByVal endpoint As Integer, ByVal flag As Boolean)
27
If flag = True Then
28
oRange = oDocument.Range(startpoint, endpoint)
29
oRange.Select()
30
Else
31
32
End If
33
End Sub
34
35
'生成空的新文档
36
Public Sub NewDocument()
37
Dim missing = System.Reflection.Missing.Value
38
Dim isVisible As Boolean = True
39
oDocument = oWordApplic.Documents.Add(missing, missing, missing, missing)
40
oDocument.Activate()
41
End Sub
42
'使用模板生成新文档
43
Public Sub NewDocWithModel(ByVal FileName As String)
44
Dim missing = System.Reflection.Missing.Value
45
Dim isVisible As Boolean = False
46
Dim strName As String
47
strName = FileName
48
oDocument = oWordApplic.Documents.Add(strName, missing, missing, isVisible)
49
oDocument.Activate()
50
End Sub
51
'打开已有文档
52
Public Sub OpenFile(ByVal FileName As String)
53
Dim strName As String
54
Dim isReadOnly As Boolean
55
Dim isVisible As Boolean
56
Dim missing = System.Reflection.Missing.Value
57
58
strName = FileName
59
isReadOnly = False
60
isVisible = True
61
62
oDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
63
oDocument.Activate()
64
65
End Sub
66
Public Sub OpenFile(ByVal FileName As String, ByVal isReadOnly As Boolean)
67
Dim strName As String
68
Dim isVisible As Boolean
69
Dim missing = System.Reflection.Missing.Value
70
71
strName = FileName
72
isVisible = True
73
74
oDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)
75
oDocument.Activate()
76
End Sub
77
'退出Word
78
Public Sub Quit()
79
Dim missing = System.Reflection.Missing.Value
80
oWordApplic.Quit()
81
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApplic)
82
oWordApplic = Nothing
83
End Sub
84
'关闭所有打开的文档
85
Public Sub CloseAllDocuments()
86
oWordApplic.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
87
End Sub
88
'关闭当前的文档
89
Public Sub CloseCurrentDocument()
90
91
oDocument.Close(Word.WdSaveOptions.wdDoNotSaveChanges)
92
End Sub
93
'保存当前文档
94
Public Sub Save()
95
Try
96
oDocument.Save()
97
Catch
98
MsgBox(Err.Description)
99
End Try
100
End Sub
101
'另存为文档
102
Public Sub SaveAs(ByVal FileName As String)
103
Dim strName As String
104
Dim missing = System.Reflection.Missing.Value
105
106
strName = FileName
107
108
oDocument.SaveAs(strName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
109
End Sub
110
'保存为Html文件
111
Public Sub SaveAsHtml(ByVal FileName As String)
112
Dim missing = System.Reflection.Missing.Value
113
Dim strName As String
114
115
strName = FileName
116
Dim format = CInt(Word.WdSaveFormat.wdFormatHTML)
117
118
oDocument.SaveAs(strName, format, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)
119
End Sub
120
'插入文本
121
Public Sub InsertText(ByVal text As String)
122
oWordApplic.Selection.TypeText(text)
123
End Sub
124
'插入一个空行
125
Public Sub InsertLineBreak()
126
oWordApplic.Selection.TypeParagraph()
127
End Sub
128
'插入指定行数的空行
129
Public Sub InsertLineBreak(ByVal lines As Integer)
130
Dim i As Integer
131
For i = 1 To lines
132
oWordApplic.Selection.TypeParagraph()
133
Next
134
End Sub
135
'插入表格
136
Public Sub InsertTable(ByRef table As DataTable)
137
Dim oTable As Word.Table
138
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
139
rowIndex = 1
140
colIndex = 0
141
If (table.Rows.Count = 0) Then
142
Exit Sub
143
End If
144
145
NumRows = table.Rows.Count + 1
146
NumColumns = table.Columns.Count
147
oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)
148
149
150
'初始化列
151
Dim Row As DataRow
152
Dim Col As DataColumn
153
'For Each Col In table.Columns
154
' colIndex = colIndex + 1
155
' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)
156
'Next
157
158
'将行添入表格
159
For Each Row In table.Rows
160
rowIndex = rowIndex + 1
161
colIndex = 0
162
For Each Col In table.Columns
163
colIndex = colIndex + 1
164
oTable.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
165
Next
166
Next
167
oTable.Rows(1).Delete()
168
oTable.AllowAutoFit = True
169
oTable.ApplyStyleFirstColumn = True
170
oTable.ApplyStyleHeadingRows = True
171
172
End Sub
173
'插入表格(修改为在原有表格的基础上添加数据)
174
Public Sub InsertTable2(ByRef table As DataTable, ByVal strbmerge As String, ByVal totalrow As Integer)
175
Dim oTable As Word.Table
176
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
177
Dim strm() As String
178
Dim i As Integer
179
rowIndex = 1
180
colIndex = 0
181
182
If (table.Rows.Count = 0) Then
183
Exit Sub
184
End If
185
186
NumRows = table.Rows.Count + 1
187
NumColumns = table.Columns.Count
188
'oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)
189
190
191
'初始化列
192
Dim Row As DataRow
193
Dim Col As DataColumn
194
'For Each Col In table.Columns
195
' colIndex = colIndex + 1
196
' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)
197
'Next
198
199
'将行添入表格
200
For Each Row In table.Rows
201
colIndex = 0
202
GotoRightCell()
203
oWordApplic.Selection.InsertRows(1)
204
For Each Col In table.Columns
205
GotoRightCell()
206
colIndex = colIndex + 1
207
Try
208
oWordApplic.Selection.TypeText(Row(Col.ColumnName))
209
Catch ex As Exception
210
oWordApplic.Selection.TypeText(" ")
211
End Try
212
'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
213
Next
214
Next
215
'如果strbmerge不为空.则要合并相应的行和列
216
If strbmerge.Trim().Length <> 0 Then
217
strm = strbmerge.Split(";")
218
For i = 1 To strm.Length - 1
219
If strm(i).Split(",").Length = 2 Then
220
MergeDouble(totalrow, strm(0), strm(i).Split(",")(1), strm(i).Split(",")(0))
221
End If
222
MergeSingle(totalrow, strm(0), strm(i))
223
Next
224
End If
225
'删除可能多余的一行
226
'GotoRightCell()
227
'GotoDownCell()
228
'oWordApplic.Selection.Rows.Delete()
229
'oTable.AllowAutoFit = True
230
'oTable.ApplyStyleFirstColumn = True
231
'oTable.ApplyStyleHeadingRows = True
232
End Sub
233
'插入表格(专门适应工程结算工程量清单)
234
Public Sub InsertTableQD(ByRef table As DataTable, ByRef table1 As DataTable)
235
Dim oTable As Word.Table
236
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
237
Dim xmmc As String
238
Dim i As Integer
239
Dim j As Integer
240
rowIndex = 1
241
colIndex = 0
242
243
If (table.Rows.Count = 0) Then
244
Exit Sub
245
End If
246
247
NumRows = table.Rows.Count + 1
248
NumColumns = table.Columns.Count
249
'oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)
250
251
252
'初始化列
253
Dim Row As DataRow
254
Dim rowtemp As DataRow
255
Dim row1() As DataRow
256
Dim Col As DataColumn
257
Dim coltemp As DataColumn
258
'For Each Col In table.Columns
259
' colIndex = colIndex + 1
260
' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)
261
'Next
262
263
'将行添入表格
264
For Each Row In table.Rows
265
colIndex = 0
266
xmmc = Row("项目名称")
267
GotoRightCell()
268
oWordApplic.Selection.InsertRows(1)
269
For Each Col In table.Columns
270
GotoRightCell()
271
Try
272
If (Col.ColumnName = "项目序号") Then
273
oWordApplic.Selection.TypeText(intToUpint(Val(Row(Col.ColumnName))))
274
Else
275
oWordApplic.Selection.TypeText(Row(Col.ColumnName))
276
End If
277
Catch ex As Exception
278
oWordApplic.Selection.TypeText(" ")
279
End Try
280
'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
281
Next
282
row1 = table1.Select("项目名称='" + xmmc + "'")
283
284
For i = 0 To row1.Length - 1
285
GotoRightCell()
286
oWordApplic.Selection.InsertRows(1)
287
For j = 0 To table1.Columns.Count - 1
288
If (table1.Columns(j).ColumnName <> "项目名称") Then
289
GotoRightCell()
290
Try
291
oWordApplic.Selection.TypeText(row1(i)(j))
292
Catch ex As Exception
293
oWordApplic.Selection.TypeText(" ")
294
End Try
295
End If
296
'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))
297
Next
298
Next
299
300
301
302
Next
303
'删除可能多余的一行
304
'GotoRightCell()
305
'GotoDownCell()
306
'oWordApplic.Selection.Rows.Delete()
307
'oTable.AllowAutoFit = True
308
'oTable.ApplyStyleFirstColumn = True
309
'oTable.ApplyStyleHeadingRows = True
310
End Sub
311
'插入表格,为了满足要求,在中间添加一根竖线
312
Public Sub InsertTable3(ByRef table As DataTable, ByVal introw As Integer, ByVal intcol As Integer)
313
Dim rowIndex, colIndex, NumRows, NumColumns As Integer
314
Dim Row As DataRow
315
Dim Col As DataColumn
316
If (table.Rows.Count = 0) Then
317
Exit Sub
318
End If
319
'首先是拆分选中的单元格
320
oDocument.Tables(1).Cell(introw, 3).Split(table.Rows.Count, 2)
321
'选中初始的单元格
322
oDocument.Tables(1).Cell(introw, 3).Select()
323
'将行添入表格
324
For Each Row In table.Rows
325
Try
326
oDocument.Tables(1).Cell(introw, 3).Range.InsertAfter(Row(0))
327
oDocument.Tables(1).Cell(introw, 4).Range.InsertAfter(Row(1))
328
Catch ex As Exception
329
oDocument.Tables(1).Cell(introw, 3).Range.InsertAfter(" ")
330
oDocument.Tables(1).Cell(introw, 4).Range.InsertAfter(" ")
331
End Try
332
introw = introw + 1
333
Next
334
End Sub
335
'设置对齐
336
Public Sub SetAlignment(ByVal strType As String)
337
Select Case strType
338
Case "center"
339
oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter
340
Case "left"
341
oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
342
Case "right"
343
oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight
344
Case "justify"
345
oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphJustify
346
End Select
347
End Sub
348
'设置字体
349
Public Sub SetStyle(ByVal strFont As String)
350
Select Case strFont
351
Case "bold"
352
oWordApplic.Selection.Font.Bold = 1
353
Case "italic"
354
oWordApplic.Selection.Font.Italic = 1
355
Case "underlined"
356
oWordApplic.Selection.Font.Subscript = 1
357
End Select
358
End Sub
359
'取消字体风格
360
Public Sub DissableStyle()
361
oWordApplic.Selection.Font.Bold = 0
362
oWordApplic.Selection.Font.Italic = 0
363
oWordApplic.Selection.Font.Subscript = 0
364
End Sub
365
'设置字体字号
366
Public Sub SetFontSize(ByVal nSize As Integer)
367
oWordApplic.Selection.Font.Size = nSize
368
End Sub
369
'跳过本页
370
Public Sub InsertPageBreak()
371
Dim pBreak As Integer
372
pBreak = CInt(Word.WdBreakType.wdPageBreak)
373
oWordApplic.Selection.InsertBreak(pBreak)
374
End Sub
375
'转到书签
376
Public Sub GotoBookMark(ByVal strBookMark As String)
377
Dim missing = System.Reflection.Missing.Value
378
Dim BookMark = CInt(Word.WdGoToItem.wdGoToBookmark)
379
oWordApplic.Selection.GoTo(BookMark, missing, missing, strBookMark)
380
End Sub
381
'判断书签是否存在
382
Public Function BookMarkExist(ByVal strBookMark As String) As Boolean
383
Dim Exist As Boolean
384
Exist = oDocument.Bookmarks.Exists(strBookMark)
385
Return Exist
386
End Function
387
'替换书签的内容
388
Public Sub ReplaceBookMark(ByVal icurnum As String, ByVal strcontent As String)
389
strcontent = strcontent.Replace("0:00:00", "")
390
oDocument.Bookmarks(icurnum).Select()
391
oWordApplic.Selection.TypeText(strcontent)
392
End Sub
393
394
'得到书签的名称
395
Public Function GetBookMark(ByVal icurnum As String, ByRef bo As Boolean) As String
396
Dim strReturn As String
397
If Right(oDocument.Bookmarks(icurnum).Name, 5) = "TABLE" Then
398
bo = True
399
Dim strTemp As String
400
strTemp = oDocument.Bookmarks(icurnum).Name()
401
strReturn = Mid(strTemp, 1, Len(strTemp) - 5)
402
Else
403
bo = False
404
strReturn = oDocument.Bookmarks(icurnum).Name
405
End If
406
Return strReturn
407
End Function
408
'得到书签的名称
409
Public Function GetBookMark1(ByVal icurnum As String) As String
410
Return oDocument.Bookmarks(icurnum).Name
411
End Function
412
'转到文档结尾
413
Public Sub GotoTheEnd()
414
Dim missing = System.Reflection.Missing.Value
415
Dim unit = Word.WdUnits.wdStory
416
oWordApplic.Selection.EndKey(unit, missing)
417
End Sub
418
'转到文档开头
419
Public Sub GotoTheBegining()
420
Dim missing = System.Reflection.Missing.Value
421
Dim unit = Word.WdUnits.wdStory
422
oWordApplic.Selection.HomeKey(unit, missing)
423
End Sub
424
'删除多余的一行
425
Public Sub DelUnuseRow()
426
oWordApplic.Selection.Rows.Delete()
427
End Sub
428
'转到表格
429
Public Sub GotoTheTable(ByVal ntable As Integer)
430
'Dim missing = System.Reflection.Missing.Value
431
'Dim what = Word.WdGoToItem.wdGoToTable
432
'Dim which = Word.WdGoToDirection.wdGoToFirst
433
'Dim count = ntable
434
435
'oWordApplic.Selection.GoTo(what, which, count, missing)
436
'oWordApplic.Selection.ClearFormatting()
437
438
'oWordApplic.Selection.Text = ""
439
oRange = oDocument.Tables(ntable).Cell(1, 1).Range
440
oRange.Select()
441
442
End Sub
443
'转到表格的某个单元格
444
Public Sub GotoTableCell(ByVal ntable As Integer, ByVal nRow As Integer, ByVal nColumn As Integer)
445
oRange = oDocument.Tables(ntable).Cell(nRow, nColumn).Range
446
oRange.Select()
447
End Sub
448
'表格中转到右面的单元格
449
Public Sub GotoRightCell()
450
Dim missing = System.Reflection.Missing.Value
451
Dim direction = Word.WdUnits.wdCell
452
oWordApplic.Selection.MoveRight(direction, missing, missing)
453
End Sub
454
'表格中转到左面的单元格
455
Public Sub GotoLeftCell()
456
Dim missing = System.Reflection.Missing.Value
457
Dim direction = Word.WdUnits.wdCell
458
oWordApplic.Selection.MoveLeft(direction, missing, missing)
459
End Sub
460
'表格中转到下面的单元格
461
Public Sub GotoDownCell()
462
Dim missing = System.Reflection.Missing.Value
463
Dim direction = Word.WdUnits.wdCell
464
oWordApplic.Selection.MoveDown(direction, missing, missing)
465
End Sub
466
'表格中转到上面的单元格
467
Public Sub GotoUpCell()
468
Dim missing = System.Reflection.Missing.Value
469
Dim direction = Word.WdUnits.wdCell
470
oWordApplic.Selection.MoveUp(direction, missing, missing)
471
End Sub
472
'文档中所有的书签总数
473
Public Function TotalBkM() As Integer
474
Return oDocument.Bookmarks.Count
475
End Function
476
'选中书签
477
Public Sub SelectBkMk(ByVal strName As String)
478
oDocument.Bookmarks.Item(strName).Select()
479
End Sub
480
'插入图片
481
Public Sub InsertPic(ByVal FileName As String)
482
Dim missing = System.Reflection.Missing.Value
483
oWordApplic.Selection.InlineShapes.AddPicture(FileName, False, True, missing).Select()
484
oShape = oWordApplic.Selection.InlineShapes(1).ConvertToShape
485
oWordApplic.Selection.WholeStory()
486
oShape.ZOrder(Microsoft.Office.Core.MsoZOrderCmd.msoSendBehindText)
487
End Sub
488
'统一调整图片的位置.也就是往上面调整图片一半的高度
489
Public Sub SetCurPicHei()
490
Dim e As Word.Shape
491
For Each e In oDocument.Shapes
492
oDocument.Shapes(e.Name).Select()
493
oWordApplic.Selection.ShapeRange.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage
494
oWordApplic.Selection.ShapeRange.RelativeVerticalPosition = Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionParagraph
495
oWordApplic.Selection.ShapeRange.LockAnchor = True
496
'oWordApplic.Selection.ShapeRange.IncrementTop(oDocument.Shapes(e.Name).Height)
497
Next
498
End Sub
499
500
Public Sub SetCurPicHei1()
501
Dim e As Word.Shape
502
For Each e In oDocument.Shapes
503
oDocument.Shapes(e.Name).Select()
504
oWordApplic.Selection.ShapeRange.IncrementTop(oDocument.Shapes(e.Name).Height / 2)
505
Next
506
End Sub
507
Public Sub SetCurPicHei2()
508
Dim e As Word.Shape
509
For Each e In oDocument.Shapes
510
oDocument.Shapes(e.Name).Select()
511
oWordApplic.Selection.ShapeRange.IncrementTop(-oDocument.Shapes(e.Name).Height / 2)
512
Next
513
End Sub
514
Public Function intToUpint(ByVal a As Integer) As String
515
Dim result As String = "一百"
516
Dim a1, a2 As Integer
517
Dim strs() As String =
{"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}
518
If (a <= 10) Then
519
result = strs(a)
520
ElseIf (a < 100) Then
521
a1 = a / 10
522
a2 = a Mod 10
523
If (a = 1) Then
524
result = "十" + strs(a2)
525
End If
526
Else
527
result = strs(a1) + "十" + strs(a2)
528
End If
529
Return result
530
End Function
531
'合并没有参照的某一列,一般来讲对应第一列
532
'itotalrow 总行数
533
'initrow 初始开始的行数,一般情况下该值不为0,没有标题栏的一般为0
534
'intcol 列数
535
Public Sub MergeSingle(ByVal itotalrow As Integer, ByVal initrow As Integer, ByVal intcol As Integer)
536
oDocument.Tables(1).Cell(initrow + 1, intcol).Select()
537
Dim irow As Integer '当前行数
538
Dim strValue As String '循环比较的行初值
539
Dim i As Integer
540
Dim direction = Word.WdUnits.wdLine
541
Dim extend = Word.WdMovementType.wdExtend
542
543
i = 0
544
irow = 1 + initrow '初始值为1
545
For i = 2 + initrow To itotalrow + initrow
546
547
strValue = oDocument.Tables(1).Cell(irow, intcol).Range.Text
548
If (oDocument.Tables(1).Cell(i, intcol).Range.Text = oDocument.Tables(1).Cell(irow, intcol).Range.Text) Then
549
'这是对最后一次处理的特殊情况.
550
If (i = itotalrow + initrow) Then
551
oWordApplic.Selection.MoveDown(direction, (i - irow), extend)
552
If (i - irow >= 1) Then
553
oWordApplic.Selection.Cells.Merge()
554
End If
555
oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue
556
End If
557
Else
558
oWordApplic.Selection.MoveDown(direction, (i - irow - 1), extend)
559
If (i - irow - 1 >= 1) Then
560
oWordApplic.Selection.Cells.Merge()
561
End If
562
oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue
563
irow = i
564
oDocument.Tables(1).Cell(irow, intcol).Select()
565
End If
566
Next i
567
End Sub
568
'合并有参照的某一列
569
'itotalrow 总行数
570
'initrow 初始开始的行数,一般情况下该值不为0,没有标题栏的一般为0
571
'intcol 列数
572
'basecol 参照合并的那一列
573
Public Sub MergeDouble(ByVal itotalrow As Integer, ByVal initrow As Integer, ByVal intcol As Integer, ByVal basecol As Integer)
574
oDocument.Tables(1).Cell(initrow + 1, intcol).Select()
575
Dim irow As Integer '当前行数
576
Dim strValue As String '循环比较的行初值
577
Dim i As Integer
578
Dim direction = Word.WdUnits.wdLine
579
Dim extend = Word.WdMovementType.wdExtend
580
581
i = 0
582
irow = 1 + initrow '初始值为1
583
For i = 2 + initrow To itotalrow + initrow
584
585
strValue = oDocument.Tables(1).Cell(irow, intcol).Range.Text
586
If (oDocument.Tables(1).Cell(i, intcol).Range.Text = oDocument.Tables(1).Cell(irow, intcol).Range.Text) And (getdata(i, basecol) = getdata(irow, basecol)) Then
587
'这是对最后一次处理的特殊情况.
588
If (i = itotalrow + initrow) Then
589
oWordApplic.Selection.MoveDown(direction, (i - irow), extend)
590
If (i - irow >= 1) Then
591
oWordApplic.Selection.Cells.Merge()
592
End If
593
oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue
594
End If
595
Else
596
oWordApplic.Selection.MoveDown(direction, (i - irow - 1), extend)
597
If (i - irow - 1 >= 1) Then
598
oWordApplic.Selection.Cells.Merge()
599
End If
600
oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue
601
irow = i
602
oDocument.Tables(1).Cell(irow, intcol).Select()
603
End If
604
Next i
605
End Sub
606
'得到某个单元的值,如果为空的话,有两种情况.
607
'其一:是一个合并的单元格,取其上面的值
608
'其二:该单元格本来就是空值
609
Public Function getdata(ByVal introw As Integer, ByVal intcol As Integer) As String
610
Try
611
If (oDocument.Tables(1).Cell(introw, intcol).Range.Text = "" Or (oDocument.Tables(1).Cell(introw, intcol).Range.Text = Nothing)) Then
612
getdata = getdata(introw - 1, intcol)
613
Else
614
getdata = oDocument.Tables(1).Cell(introw, intcol).Range.Text
615
End If
616
Catch ex As Exception
617
getdata = getdata(introw - 1, intcol)
618
End Try
619
620
621
End Function
622
End Class

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

442

443

444

445

446

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

463

464

465

466

467

468

469

470

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

488

489

490

491

492

493

494

495

496

497

498

499

500

501

502

503

504

505

506

507

508

509

510

511

512

513

514

515

516

517



518

519

520

521

522

523

524

525

526

527

528

529

530

531

532

533

534

535

536

537

538

539

540

541

542

543

544

545

546

547

548

549

550

551

552

553

554

555

556

557

558

559

560

561

562

563

564

565

566

567

568

569

570

571

572

573

574

575

576

577

578

579

580

581

582

583

584

585

586

587

588

589

590

591

592

593

594

595

596

597

598

599

600

601

602

603

604

605

606

607

608

609

610

611

612

613

614

615

616

617

618

619

620

621

622
