求助 用VB编写的XML与WORD文档转换中遇到的问题,请高手指点!!!

原创 2005年05月29日 09:25:00

Dim oDoc As DOMDocument
Dim DOCINPATH As String
Dim DOCOUTPATH As String
Dim XMLOUTPATH As String
Dim XMLINPATH As String


Function ReadBinData(ByVal strFileName As String) As Variant
    Dim lLen As Long
    Dim iFile As Integer
    Dim arrBytes() As Byte
    Dim lCount As Long
    Dim strOut As String
   
'Read from disk
    iFile = FreeFile()
    Open strFileName For Binary Access Read As iFile
    lLen = FileLen(strFileName)
    ReDim arrBytes(lLen)
    Get iFile, , arrBytes
    Close iFile
   
    ReadBinData = arrBytes
End Function

Private Sub WriteBinData(ByVal strFileName As String)
    Dim iFile As Integer
    Dim arrBuffer() As Byte
    Dim oNode As IXMLDOMNode
     
    If Not (oDoc Is Nothing) Then
       
' Get the data
        Set oNode = oDoc.documentElement.selectSingleNode("/Root/Data")

' Make sure you use a byte array instead of variant
        arrBuffer = oNode.nodeTypedValue
           
' Write to disk
       
        iFile = FreeFile()
        Open strFileName For Binary Access Write As iFile
        Put iFile, , arrBuffer
        Close iFile
   
    End If
   
End Sub


Private Sub Command1_Click()
     Dim oEle As IXMLDOMElement
    Dim oRoot As IXMLDOMElement
    Dim oNode As IXMLDOMNode
    If Text1 = "" Then
    MsgBox "您还没有选择路径"
    Exit Sub
       End If
    If Text2 = "" Then
    MsgBox "您还没有选择路径"
    Exit Sub
    End If
  
  '  DOCINPATH = Label1.Caption
 

   ' XMLOUTPATH = Text1.Text & ".xml"

         
    Call ReleaseObjects
   
    Set oDoc = New DOMDocument
    oDoc.resolveExternals = True
   
' Create processing instruction and document root
    Set oNode = oDoc.createProcessingInstruction("xml", "version='1.0'")
    Set oNode = oDoc.insertBefore(oNode, oDoc.childNodes.Item(0))
   
' Create document root
    Set oRoot = oDoc.createElement("Root")
    Set oDoc.documentElement = oRoot
    oRoot.setAttribute "xmlns:dt", "urn:schemas-microsoft-com:datatypes"

' Add a few simple nodes with different datatypes
    Set oNode = oDoc.createElement("Document")
    oNode.Text = "Demo"
    oRoot.appendChild oNode
   
    Set oNode = oDoc.createElement("CreateDate")
    oRoot.appendChild oNode
    Set oEle = oNode
   
' Use DataType so MSXML will validate the data type
    oEle.dataType = "date"
        
    oEle.nodeTypedValue = Now
   
    Set oNode = oDoc.createElement("bgColor")
    oRoot.appendChild oNode
    Set oEle = oNode
   
' Use DataType so MSXML will validate the data type
    oEle.dataType = "bin.hex"
        
    oEle.Text = &HFFCCCC
   
    Set oNode = oDoc.createElement("Data")
    oRoot.appendChild oNode
    Set oEle = oNode
   
' Use DataType so MSXML will validate the data type
    oEle.dataType = "bin.base64"
    
' Read in the data
    oEle.nodeTypedValue = ReadBinData(DOCINPATH)
   
' Save xml file
    oDoc.save XMLOUTPATH
   
    MsgBox XMLOUTPATH & " is created for you."
  

End Sub

Private Sub Command2_Click()
'DOCOUTPATH = Text1.Text & ".doc"
'XMLOUTPATH = Label1.Caption
If Text3 = "" Then
MsgBox "您还没有选择路径"
Exit Sub
End If
If Text4 = "" Then
MsgBox "您还没有选择路径"
Exit Sub
End If

    Set oDoc = New DOMDocument
   
    If oDoc.Load(XMLOUTPATH) = True Then
         'Save the Doc as another file
       WriteBinData DOCOUTPATH
      
       MsgBox DOCOUTPATH & " is created for you."
    Else
       MsgBox oDoc.parseError.reason
    End If

End Sub

Private Sub Command3_Click()
xmldlg.Filter = "xml文件(*.xml)|*.xml"
xmldlg.ShowOpen
XMLOUTPATH = xmldlg.FileName
Text3 = XMLOUTPATH

End Sub

Private Sub Command4_Click()
worddlg.Filter = "word文件(*.doc)|*.doc"
worddlg.ShowSave
DOCOUTPATH = worddlg.FileName
'MsgBox DOCOUTPATH
Text4 = DOCOUTPATH


End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Click()
Label1.Caption = CurDir & "/" & File1.FileName
End Sub

Private Sub Command5_Click()

worddlg1.Filter = "word文件(*.doc)|*.doc"
'worddlg1.Action = 1
worddlg1.ShowOpen
DOCINPATH = worddlg1.FileName
Text1 = DOCINPATH
End Sub

Private Sub Command6_Click()

xmldlg1.Filter = "xml文件(*.xml)|*.xml"
'xmldlg1.Action = 2
xmldlg1.ShowSave
XMLOUTPATH = xmldlg1.FileName
Text2 = XMLOUTPATH

End Sub

Private Sub Form_Unload(Cancel As Integer)
    ReleaseObjects
    'xmldlg.Action = 1
    'worddlg.Action = 2
   ' worddlg.Filter = "word文件(*.doc)|*.doc"
End Sub

Private Sub ReleaseObjects()
    Set oDoc = Nothing
End Sub

我编写后发现XML里面全是乱码,而不是WORD文档里的内容,小弟是在搞不清是怎么回事,请各位高手指点迷经,使XML里转换出WORD里面的内容。。。。。。。。。

XML文件转换成Word文件或者Excel文件

将XML文件转换为HTML文件,方便用户对数据进行浏览,这个是开发者经常做的,只需要使用Xslt进行转换就可以了。但是某种时候,需要将XML文件转换为word文件,或者是excel文件,该如何做呢?拿...
  • arui319
  • arui319
  • 2007年12月29日 16:43
  • 10959

vb操作word详解

Visual Basic支持一个对象集合,该集合中的对象直接对应于Microsoft Word 97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。例如,Document 对象代表了一个打开...
  • jomakzhao
  • jomakzhao
  • 2007年03月30日 22:49
  • 8393

XML导出word

XML导出word类 新建一个word文档,如图 在相应单元格中插入书签 将word文档另存为xml文档 后台代码: ExportWordML expwordml = ne...
  • shujudeliu
  • shujudeliu
  • 2014年01月16日 17:37
  • 4297

xslt将word转换成html,xslt将xml转换成html

(一)后台转换,不需要jsp页面(word模板,xml模板) 1.需要下载xalan.jar(在博客资源内,免分)   2.需要xslt文件(该文件对相应格式的xml,语法参考http://www.w...
  • Truong
  • Truong
  • 2012年12月12日 17:15
  • 2076

VB的文本框控件TextBox打开Office的Word文档

有网友问我,VB的文本框控件TextBox能否打开Office的Word文档。VB的TextBox是Ansi版本的,通过open语句打开载入到TextBox中,肯定是乱码,没啥说的。但是,我们可以通过...
  • chenjl1031
  • chenjl1031
  • 2012年09月14日 16:50
  • 1764

使用VB对word文档进行格式调整

在word文档中,有时候会出现大量表格,在需要调整格式时,只能一个一个手动刷格式,这样不仅费时而且很费力。本人在写文档时,碰到这种情况,熬夜干活儿,太累。所以下定决心,抽点时间研究WORD中的宏编程。...
  • polisman
  • polisman
  • 2015年12月22日 16:53
  • 1640

vb.net创建一个word文档并保存

引用:Microsoft Word 11.0 Object Library Microsoft Office 11.0 Object Library代码如下: Imports Microsoft.Of...
  • precipitant
  • precipitant
  • 2007年09月29日 09:33
  • 3550

PHPWord 导出模版Word文件,无法打开,提示xml pasring error

最近在处理网站批量导出模版word时,遇到一个问题: 网站是用PHP语言编写的,导出模版word(即将用户填写内容动态的插入word相应位置,生成.doc或.docx文件)采用的是PHPWord插件...
  • qq_30465657
  • qq_30465657
  • 2016年11月11日 23:49
  • 1287

【XML】——XML与HTML异同

在没有学习XML之前,一直错认为XML是HTML的替代语言,在看《XML刘伟》视频之后,发现这种认为 对我的帮助还是挺大的。现在来更正一下XML语言与HTML的关系,然后再说说为什么错觉也会...
  • u011626283
  • u011626283
  • 2015年07月09日 21:57
  • 743

如何用vb将计算结果输出到word中?

 我想通过保存按钮将文本框中的文字输出到word文档中,开始运行的很好,但后来改动界面后不知怎么不行了。同样的代码在word宏中也是有时可以运行,有时就进行不下去。请大侠多指教!程序界面和程序编辑界面...
  • vbptau
  • vbptau
  • 2007年12月08日 21:21
  • 1014
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求助 用VB编写的XML与WORD文档转换中遇到的问题,请高手指点!!!
举报原因:
原因补充:

(最多只允许输入30个字)