VBA读写XML文件
'Write XML file
Sub WriteXML(fpa$, fn$)
Dim xmlfile As String
xmlfile = ThisWorkbook.Path & ".\Export.xml"
CreateXml xmlfile, fpa, fn
End Sub Function CreateXml(xmlfile$, fpa$, fn$)
Dim xdoc As Object
Dim rootNode As Object
Dim header As Object
Dim newNode As Object
Dim tNode As Object Set xdoc = CreateObject("MSXML2.DOMDocument")
Set rootNode = xdoc.createElement("FilePath")
Set xdoc.DocumentElement = rootNode
'xDoc.Load xmlFile
Set header = xdoc.createProcessingInstruction("xml", "version='1.0' encoding='Unicode'")
xdoc.InsertBefore header, xdoc.ChildNodes() Set newNode = xdoc.createElement("File")
Set tNode = xdoc.DocumentElement.appendChild(newNode)
tNode.setAttribute "type", "folder" Set newNode = xdoc.createElement("path")
Set tNode = xdoc.DocumentElement.ChildNodes.Item().appendChild(newNode)
tNode.appendChild (xdoc.createTextNode(fpa)) Set newNode = xdoc.createElement("File")
Set tNode = xdoc.DocumentElement.appendChild(newNode)
tNode.setAttribute "type", "file" Set newNode = xdoc.createElement("name")
Set tNode = xdoc.DocumentElement.ChildNodes.Item().appendChild(newNode)
tNode.appendChild (xdoc.createTextNode(fn)) Set newNode = Nothing
Set tNode = Nothing Dim xmlStr As String
xmlStr = PrettyPrintXml(xdoc)
WriteUtf8WithoutBom xmlfile, xmlStr Set rootNode = Nothing
Set xdoc = Nothing 'MsgBox xmlFile & "XML file exported sucessfully!"
' Call export_data(fpa, fn)
End Function 'Formatting XML,set wrapping and indentation
Function PrettyPrintXml(xmldoc) As String
Dim reader As Object
Dim writer As Object
Set reader = CreateObject("Msxml2.SAXXMLReader.6.0")
Set writer = CreateObject("Msxml2.MXXMLWriter.6.0")
writer.indent = True
writer.omitXMLDeclaration = True
reader.contentHandler = writer
reader.Parse (xmldoc)
PrettyPrintXml = writer.Output
End Function 'UTF-8 without BOM
Function WriteUtf8WithoutBom(filename As String, content As String)
Dim stream As New ADODB.stream
stream.Open
stream.Type = adTypeText
stream.Charset = "utf-8"
stream.WriteText "<?xml version=" & Chr() & "1.0" & Chr() & _
" encoding=" & Chr() & "UTF-8" & Chr() & "?>" & vbCrLf
stream.WriteText content 'Top 3 character move sets£¨0xEF,0xBB,0xBF£©
stream.Position = Dim newStream As New ADODB.stream
newStream.Type = adTypeBinary
newStream.Mode = adModeReadWrite
newStream.Open stream.CopyTo newStream
stream.Flush
stream.Close newStream.SaveToFile filename, adSaveCreateOverWrite
newStream.Flush
newStream.Close
End Function Sub export_data()
Dim xdoc As New DOMDocument60 'Declare and create XML object
Dim b As Boolean, root As IXMLDOMElement
Dim fp As String
Dim fn As String
Dim wb As Workbook
Dim arr() As String
Dim i As Integer
Dim j As Integer
Dim app As Object
Dim wbs As Workbook
Dim ws As Worksheet
Dim irow As Integer
On Error Resume Next
With ThisWorkbook.Sheets()
b = xdoc.Load(ThisWorkbook.Path & ".\Export.xml")
If b = True Then
Set root = xdoc.DocumentElement 'Get the root node
fn = root.ChildNodes.Item().Text
fp = root.ChildNodes.Item().Text & fn & "-" & Format(Now(), "yyyymmdd") & ".xlsx"
irow = ThisWorkbook.Sheets().Range("a1000000").End(xlUp).Row
ActiveWorkbook.Sheets().Copy
ActiveWorkbook.SaveAs filename:=fp
irow = .Range("A1000000").End(xlUp).Row
.Range("A2:E" & irow).ClearContents
Else
MsgBox "Error:failed to load xml file!",
End If
End With
End Sub
VBA读写XML文件的更多相关文章
- C#读写xml文件的常用方法
已知有一个XML文件(bookshop.xml)如下: <?xml version="1.0" encoding="gb2312" ?> <b ...
- PHP读写XML文件的四种方法
PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...
- Java 读写XML文件 API--org.dom4j
om4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,同时它也是一个开放源代码的软件 ...
- Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...
- cocos2d-x 读写 xml 文件
cocos2d-x 读写 xml 文件 A product of cheungmine使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去 ...
- java通过dom读写xml文件
java通过dom读写xml文件 要读的xml文件 <?xml version="1.0" encoding="GB2312"?><学生花名册 ...
- C# 读写XML文件的方法
C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新 引言: ...
- 【VS开发】【计算机视觉】OpenCV读写xml文件《C++版本》
OpenCV FileStorage类读写XML/YML文件 在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XM ...
随机推荐
- linux在配置菜单中添加选项
- springboot升级2.0 fastjson报错? 2.0以上应该怎么整合fastjson?
SpringBoot2.0如何集成fastjson?在网上查了一堆资料,但是各文章的说法不一,有些还是错的,可能只是简单测试一下就认为ok了,最后有没生效都不知道.恰逢公司项目需要将JackSon换成 ...
- (十二)A64
一.AC108驱动移植 1.驱动添加 cp r18/lichee/linux-4.4/sound/soc/codecs/ac108.* a64/linux-3.10/sound/soc/codecs/ ...
- web开发:javascript动画
一.鼠标事件 二.js盒模型 三.鼠标拖拽 四.键盘事件 五.其他时间应用 六.定时器 七.定时器案例 八.随机数 一.鼠标事件 <!DOCTYPE html> <html> ...
- MySQL中添加、删除约束
MySQL中6种常见的约束:主键约束(primary key).外键约束(foreign key).非空约束(not null).唯一性约束(unique).默认值约束(defualt).自增约束(a ...
- PHP获取mysql数据表的字段名称及详细属性
SHOW DATABASES //列出 MySQL Server 数据库. SHOW TABLES [FROM db_name] //列出数据库数据表. SHOW CREATE TABLES tbl_ ...
- 浅谈IT人的发展(转载)
一个人如果能确定他喜欢的行业,他一生都会非常幸福. 相反,则往往痛苦,也许竟然会因此成为一个哲学家也说不定. 中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业,而只是因为生活所迫,或者世 ...
- UVa1078 Steam Roller——拆点+最短路
题目链接 思路 把每个点拆成\(5\)个点\(id(x,y),id(x,y)+n,id(x,y)+2*n,id(x,y)+3*n,id(x,y)+4*n\),分别表示到这个点时的方向为上,右,下,左和 ...
- initramfs机制
1.什么是 Initramfs 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件.当内核启动时,会从这个打包文件中导出文件到内核的rootfs文件系统,然后内核检查rootfs ...
- spring-boot-configuration-processor 是干啥用的
spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了 引入pom依赖 <de ...