怎样用VC实现对word文档的搜索

怎样用VC实现对word文档的搜索,第1张

大致思路: 利用Office Automation; 可以参考Microsoft Office Development with Visual Studio或者VSTO(visual studio tools for office); MSDN上有具体的interface。

搜索的时候,才有Range的find,如果有结果,再判断selection的font是腊仿否是态亮Arial-BoldMT。

基本上,你如果能在Word里帆局宽面用宏实现这个要求,那么外部程序的调用,只是一个automation的问题。因此可以参考word VBA的控制部分。

前提:

导入COM库:Microsoft word 11.0 Object Library.

引用里面就增加了:

创建新Word

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing)

打开文档:

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

object fileName = @"E:CCCXCXXTestDoc.doc"

oDoc = oWord.Documents.Open(ref fileName,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing)

导入模板

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

object fileName = @"E:XXXCCXTest.doc"

oDoc = oWord.Documents.Add(ref fileName, ref oMissing,

ref oMissing, ref oMissing)

.添加新表

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing)

object start = 0

object end = 0

Word.Range tableLocation = oDoc.Range(ref start, ref end)

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing)

.表插入行

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing)

object start = 0

object end = 0

Word.Range tableLocation = oDoc.Range(ref start, ref end)

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing)

Word.Table newTable = oDoc.Tables[1]

object beforeRow = newTable.Rows[1]

newTable.Rows.Add(ref beforeRow)

.单元格合并

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing)

object start = 0

object end = 0

Word.Range tableLocation = oDoc.Range(ref start, ref end)

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing)

Word.Table newTable = oDoc.Tables[1]

object beforeRow = newTable.Rows[1]

newTable.Rows.Add(ref beforeRow)

Word.Cell cell = newTable.Cell(1, 1)

cell.Merge(newTable.Cell(1, 2))

.单元格分离

object oMissing = System.Reflection.Missing.Value

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing,

ref oMissing, ref oMissing)

object start = 0

object end = 0

Word.Range tableLocation = oDoc.Range(ref start, ref end)

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing)

Word.Table newTable = oDoc.Tables[1]

object beforeRow = newTable.Rows[1]

newTable.Rows.Add(ref beforeRow)

Word.Cell cell = newTable.Cell(1, 1)

cell.Merge(newTable.Cell(1, 2))

object Rownum = 2

object Columnnum = 2

cell.Split(ref Rownum, ref Columnnum)

通过段落控制插入

object oMissing = System.Reflection.Missing.Value

object oEndOfDoc = "\endofdoc"/**//* endofdoc is a predefined bookmark */

//Start Word and create a new document.

Word._Application oWord

Word._Document oDoc

oWord = new Word.Application()

oWord.Visible = true

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing)

//Insert a paragraph at the beginning of the document.

Word.Paragraph oPara1

oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing)

oPara1.Range.Text = "Heading 1"

oPara1.Range.Font.Bold = 1

oPara1.Format.SpaceAfter = 24 //24 pt spacing after paragraph.

oPara1.Range.InsertParagraphAfter()

C#,java,VB,VC都搜答逗可以,脚本语言应该也行,只要在程序中引入Word中的office可编程组件,就可使用Word中的各种功能函数。

如果不了解的话,可以用举配VBA将Word *** 作录制成宏,然后查看VBA代码,结合VSTO生世卖成Word文档


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12194603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存