Ecexl中的VBA导出表内的数据到XML
来源:互联网 发布:mysql pdf 百度云 编辑:程序博客网 时间:2024/05/07 00:42
Ecexl中的VBA导出表内的数据到XML
作用:
为了方便策划填表,导表,我需要做一个功能就是在Ecexl中添加一个按钮 实现 自动导表功能。
实现方法:
主要使用 DOMDocument 模型,(需要添加 XML控件:工具-> 引用->选择Microsoft XML,V3.0)实现XML,遍历表格让每一行形成一条XML数据。把第一行当做属性名称,形成特定格式。
代码如下:
Option Explicit '语句在模块级别中使用,强制显式声明模块中的所有变量。Sub Main() Dim xmlName As String 'XML名称 Dim xmlDoc As DOMDocument'数据总表 Dim xmlPI As IXMLDOMProcessingInstruction'数据总表属性获得这些参数值 Dim xmlRoot As IXMLDOMElement'总表数据 Dim xmlVoucher As IXMLDOMElement'每行数据 Dim I As Long Dim M As Long Dim DataRange As Variant Dim TextEnd As Long Dim NeedToGetBigger As Long TextEnd = 5 NeedToGetBigger = 1 xmlName = VBA.UCase(Left(ActiveWorkbook.name, NeedToGetBigger)) + Mid(ActiveWorkbook.name, 1 + NeedToGetBigger, (Len(ActiveWorkbook.name) - NeedToGetBigger - TextEnd)) Set xmlDoc = New DOMDocument Set xmlPI = xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""utf-8""") xmlDoc.appendChild xmlPI Set xmlRoot = xmlDoc.createElement("ArrayOf" + xmlName) xmlDoc.appendChild xmlRoot Dim Rows As Long Dim Columns As Long Rows = ActiveSheet.UsedRange.Rows.Count Columns = ActiveSheet.UsedRange.Columns.Count DataRange = Sheet1.Range("A1:BU900").value For I = 2 To Rows Set xmlVoucher = AddChild(xmlDoc, xmlRoot, xmlName) For M = 1 To Columns AddEntry xmlDoc, xmlVoucher, DataRange(1, M), DataRange(I, M) Next M Next I Dim Path As String Path = Application.ActiveWorkbook.Path + "\..\" + Left(ActiveWorkbook.name, Len(ActiveWorkbook.name) - TextEnd) + ".xml" xmlDoc.Save Path MsgBox "Export file success ..."End SubFunction AddChild(ByVal xmlDoc As DOMDocument, _ ByVal xmlParent As IXMLDOMElement, _ ByVal tagName As String _ ) As IXMLDOMElement Dim xmlChild As IXMLDOMElement Set xmlChild = xmlDoc.createElement(tagName) xmlParent.appendChild xmlChild Set AddChild = xmlChildEnd FunctionFunction AddTextChild(ByVal xmlDoc As DOMDocument, _ ByVal xmlParent As IXMLDOMElement, _ ByVal tagName As String, _ ByVal Text As String _ ) As IXMLDOMElement Dim xmlChild As IXMLDOMElement Dim xmlText As IXMLDOMText Set xmlChild = xmlDoc.createElement(tagName) xmlParent.appendChild xmlChild xmlChild.Text = Text Set AddTextChild = xmlChildEnd FunctionSub AddEntry(ByVal xmlDoc As DOMDocument, _ ByVal xmlParent As IXMLDOMElement, _ ByVal name As String, _ ByVal value As String) AddTextChild xmlDoc, xmlParent, name, valueEnd Sub
下面记录一些经常用到的 VBA 函数
VBA如何获取当前EXCEL文件的路径
返回应用程序完整路径
Application.Path
返回当前工作薄的路径
ThisWorkbook.Path
返回当前默认文件路径:
Application.DefaultFilePath
Application.ActiveWorkbook.Path 只返回路径
Application.ActiveWorkbook.FullName 返回路径及工作簿文件名
Application.ActiveWorkbook.Name 返回工作簿文件名
该微博转自:http://blog.csdn.net/wuyang8/article/details/54571673
0 0
- Ecexl中的VBA导出表内的数据到XML
- C#执行access中VBA,用VBA导出access表中数据到Excel中
- DataGridView中的数据导入导出到XML文件
- 将Excel表格中的数据导出到xml文件中
- 将DataTable中的数据以Xml格式写到指定的文件内,并读取
- .net从将数据库中的数据导出到Excel格式的xml
- Excel VBA 将当前活动工作表中的图片保存到以工作表名称命名的文件夹内
- Excel VBA数据导出
- 在VBA中将不规则数据导出到Excel
- Access 在VBA中实现数据导出到Excel
- 将表格中的数据导出到EXCEL表中的
- VBA的力量 快速获取多个表格中的数据后导入到数据库(图文)
- 导出数据到xml文件中
- 导出数据到xml(自动下载)
- DataSet数据集导出到Xml文件
- 从EXCEL导出数据到XML
- 实现GridView中的数据的打印和导出到Excel
- 实现GridView中的数据的打印和导出到Excel
- Some
- Android Websocket 的使用
- JSON对象互相转换操作
- 高级去雾算法与原理--暗原色图技术
- awk命令学习2
- Ecexl中的VBA导出表内的数据到XML
- CTS-第五篇
- Redis持久化-RDB与AOF
- SVN版本控制服务器安装与配置
- 设计模式的六大原则
- ubuntu16.04 install oracle java8 step by step
- ORACLE 基础概念及代码
- Single Bounding Box Regression
- JS代码压缩混淆工具使用说明