如何将excel中的数据写入xml文件中

如何将excel中的数据写入xml文件中,第1张

一、根据数据集生成 XML 并用于 Excel

本节说明如何创建 DataSet 对象,以及如何通过 WriteXML 方法将该对象包含的数据导出至 XML 文件。DataSet 对象是 Microsoft .NET Framework 中数据访问的关键部碰孙分,它是包含表、视图和关系的内存中的对象。

您可以打开直接在 Excel 中生成的 XML 文件。为了进行说明,请使用 Jet OLEDB 提供程序根据 Access Northwind 示例创建 DataSet 对象。类似代码都可用于使用 Visual Basic .NET 创建的 DataSet 对象。

1.

启动 Microsoft Visual Studio® .NET。在“文件”菜单上,单击“新建”,然后单击“项目”。从 Visual Basic 项目类型中选择“Windows 应用程序”。默认情况下将创建 Form1。

2.

在“视图”菜单上,选择“工具箱”,然后在 Form1 中添加一个按钮。

3.

双击 Button1。将出现该窗体的代码窗口。

4.

将下列专用成员变量添加到 Form1 类:

Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &_ "C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb"

注意:可能需要修改连接字符串中 Northwind.mdb 的路径,以便与安装匹配。您可从 Microsoft 下载中心下载 Northwind Traders 示例数据迹饥库。此外,请注意路径字符串的 Data 和 Source 之间有一个空格。

5.

将以下代码添加到 Button1_Click 处理程序:

'Connect to the data source.

Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)

Try

objConn.Open()

'使用客户表中的记录填充数据集。

Dim strSQL As String

Dim objDataset As New DataSet

Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter

'OLEDbDataAdapter 充当了数据源之间的桥梁,

'在此例是客户表和数据集之间的桥梁。

strSQL = "Select CustomerID, CompanyName, ContactName, " &_

"客户的国家/地区和电话"

objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _

strSQL, objConn)

objAdapter.Fill(objDataset)

'创建要使用的 FileStream。

Dim strFilename As String

strFilename = "C:\Customers.xml"

Dim fs As New System.IO.FileStream(strFilename, _

System.IO.FileMode.Create)

'为笑州链 FileStream 创建 XmlTextWriter。

Dim xtw As New System.Xml.XmlTextWriter(fs, _

System.Text.Encoding.Unicode)

'将处理指令添加到 XML 文件的开头,

' 注释其中一个指示样式表的处理指令。

xtw.WriteProcessingInstruction("xml", "version='1.0'")

'xtw.WriteProcessingInstruction( _

'"xml-stylesheet", "type='text/xsl' href='customers.xsl'")

'将 XML 从数据集写入文件。

objDataset.WriteXml(xtw)

xtw.Close()

MsgBox("客户数据已导出至 C:\Customers.xml。")

Catch ex As Exception

MsgBox(ex.Message)

End Try

6.

按 F5 键创建并运行程序。

7.

单击 Button1 创建 XML 文件,然后关闭 Form1 以结束程序。

8.

启动 Excel,打开 C:\Customers.xml 输出文件。

9.

查看了 Excel 解析 XML 并对应到新工作簿中的行和列之后,关闭该文件并退出 Excel。

二、使用样式表设置 XML 的格式。

此步骤显示如何使用可扩展样式语言 (XSL) 样式表来转换 Excel 工作簿设置 XML 数据格式及组织 XML 数据的方式。

注意:在 XML 样式表文件中,XML 标记描述了文本文件中的数据,但 XML 单独不能指定如何向用户显示数据。XML 数据格式的设置规则常包含在 XSL 样式表中。XML 样式表是格式正确的 XML 文档,它可以使用 XSL 来转换 XML 数据以备显示。相同的 XML 数据可以有很多样式表。尽管实际的 XML 数据结构可能相同,但 XSL 样式表可将数据灵活显示为很多不同的格式。

1.

使用任意 HTML 编辑器或文本编辑器(如 Microsoft 记事本),将以下 XSL 保存为 C:\Customers.xsl:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/">

<HTML>

<HEAD>

<STYLE>

.HDR { background-color:bisquefont-weight:bold }

</STYLE>

</HEAD>

<BODY>

<TABLE>

<COLGROUP WIDTH="100" ALIGN="CENTER"></COLGROUP>

<COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP>

<COLGROUP WIDTH="200" ALIGN="LEFT"></COLGROUP>

<COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP>

<COLGROUP WIDTH="100" ALIGN="LEFT"></COLGROUP>

<TD CLASS="HDR">客户 ID</TD>

<TD CLASS="HDR">公司</TD>

<TD CLASS="HDR">联系人</TD>

<TD CLASS="HDR">国家/地区</TD>

<TD CLASS="HDR">电话</TD>

<xsl:for-each select="NewDataSet/Table">

<TR>

<TD><xsl:value-of select="CustomerID"/></TD>

<TD><xsl:value-of select="CompanyName"/></TD>

<TD><xsl:value-of select="ContactName"/></TD>

<TD><xsl:value-of select="Country"/></TD>

<TD><xsl:value-of select="Phone"/></TD>

</TR>

</xsl:for-each>

</TABLE>

</BODY>

</HTML>

</xsl:template>

</xsl:stylesheet>

2.

删除 Button1_Click 处理程序中以下代码行中的注释标记:

xtw.WriteProcessingInstruction( _ "xml-stylesheet", "type='text/xsl' href='customers.xsl'")

该行代码将处理指令写入 XML 文件,而 Excel 要使用该文件定位 XSL 样式表 (Customers.xsl)。

3.

按 F5 键创建并运行程序。

4.

单击 Button1 创建 XML 文件,然后关闭 Form1 以结束程序。

5.

启动 Excel,打开 C:\Customers.xml 输出文件。

6.

由于 Excel 可通过 XML 文件明确 XSL 样式表的处理指令,因此您在打开该文件时会收到一个对话框提醒。在“导入 XML”对话框中,选择“打开该文件,应用以下样式表”。在列表中,选择 Customers.xsl 并单击“确定”。请注意,Excel 根据 XSL 样式表来设置 XML 数据的格式并组织各列。

7.

关闭该文件并退出 Excel。

三、使用代码打开已转换的 XML

此刻,您已使用 Excel 的用户界面打开了 XML 文件。本节说明如何使 Excel 自动按照编程的方式来打开工作簿。以下示例说明如何先将 DataSet 对象中的 XML 转换为超文本标记语言 (HTML),然后再打开已转换的 XML(其间无需用户干预)。

1.

在 Visual Basic .NET 项目中,向 Form1 添加另一按钮。

2.

双击 Button2。一旦显示窗体的代码窗口,将以下代码添加到 Button2_Click 处理程序:

'连接到数据源。

Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)

Try

objConn.Open()

'使用客户表中的记录填充数据集。

Dim strSQL As String

Dim objDataset As New DataSet

Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter

strSQL = "Select CustomerID, CompanyName, ContactName, " &_

"客户的国家/地区和电话"

objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _

strSQL, objConn)

objAdapter.Fill(objDataset)

' 创建要使用的 FileStream。

Dim strFilename As String

strFilename = "C:\Customers.htm"

Dim fs As New System.IO.FileStream(strFilename, _

System.IO.FileMode.Create)

'为 FileStream 创建 XmlTextWriter。

Dim xtw As New System.Xml.XmlTextWriter(fs, _

System.Text.Encoding.Unicode)

'使用样式表转换 XML。

Dim xmlDoc As System.Xml.XmlDataDocument = _

New System.Xml.XmlDataDocument(objDataset)

Dim xslTran As System.Xml.xsl.XslTransform = _

New System.Xml.Xsl.XslTransform

xslTran.Load("c:\customers.xsl")

xslTran.Transform(xmlDoc, Nothing, xtw, Nothing)

'将已转换的 XML 写入文件。

objDataset.WriteXml(xtw)

xtw.Close()

'启动 Excel 并打开得到的文件。

Dim oExcel As Object

oExcel = CreateObject("Excel.Application")

oExcel.Workbooks.Open("C:\Customers.htm")

'使 Excel 可见并赋予用户

'控制应用程序的权限。

oExcel.Visible = True

oExcel.UserControl = True

Catch ex As Exception

MsgBox(ex.Message)

End Try

3.

按 F5 键创建并运行程序。

4.

单击 Button2 在 Microsoft Excel 中打开已转换的 XML。

注意:尽管 Excel 对象模型的 OpenXML 方法允许您通过编程方式打开 XML 文件并应用样式表,但前一示例并不调用这一方法。因为在自动化客户端使用该方法存在一个已知问题。通过 Excel 宏调用 OpenXML 方法可按预期方式进行;但从自动化客户端中调用此方法,系统会忽略 <StyleSheet>参数。所谓自动化,即通过一个产品来控制另一产品的过程,最终结果是客户端产品可利用服务器产品的对象、方法和属性

四、结论

本文介绍了如何根据 XML 生成数据集、如何使用架构设置 XML 数据的格式、如何自动化 Excel 并显示 XML。您可以使用这些 *** 作将重要的功能添加到应用程序中。尝试本文提供的代码示例,您可组合不同 *** 作并增强应用程序的有效性。

(1) 更新屏幕和重新计算图形数据库使用什么命令? ()

A. Blipmode(控制点标记的显示)

B. Regen(重生成)

C. Redraw(重画)

D. Refresh(更新)

(2) 什或蔽么命令能沿着对象放置点并创建等分线段? ()

A. MEASURE

B. POINT

C. DIVIDE

D. SPLIT

(3) 当要用一种或多种对象捕捉时哪种方式有效? ()

A. Override

B. Running

C. Default

D. Constant

(4) 关联标注的打开和关闭是由哪一个系统变量控制? ()

A. ASSOCDIM

B. ASSOCONOFF

C. DIMASSOC

D. ASSOCUPDATE

(5) 在文字标注时,_______控制数字小数位的设置? ()

A. 在“标注样式”的“精度”选项

B. UNITS命令

C. 在“标注样式”的“测量比例”选项

D. 编辑标注文字

(6) 标注尺寸能够自动无关联吗?如果可以,在什麽样的条件下可以实现?()

A. 可以但是仅在修改已存在的关联标注时

B. 可以仅当标注尺寸与其关联的几何对象在同一命令下发生移动、拷贝、阵列等 *** 作时

C. 不可以

D. 可以,在以下情况下标注能够自动地无关联

1) 标注关联的图形对象被删除

2) 被关联的几何对象执行了布尔运算(例如UNION或SUBTRACT)。

3) 栅格编辑用于平行尺寸线拉身标注。

4) 指定使用“外观交点”对象捕捉几何对象的关联,并且移动几何对象使外观交点不再出现。

(7) 如何输出对象到DesignXML文件中? ()

A. 使用WBLOCK命令并从“文件类型”下拉列表中选择“DesignXML文件”。

B. 使用WBLOCK命令并在文件名后输入“.xml”。

C. 使用EXPORT命令

D. 使用BLOCK命令

(8) 什么类型的文件是DesignXML文件? ()

A. 文本文件

B. 光栅文件

C. 矢量文件

D. Postscript文件

(9) 当在“图层转换器”中选择不同的图层时,怎样控制显示? ()

A. 在“设置”对话框中选择“写入转换日志”

B. 在“设置”对话框中选择“选定时显示图层内容”

C. 在“设置”对话框中选择“强制对象线型为随层”

D. 不能控制显示多个图层

(10) 使用“上一个图层”命令,下面哪种改变可以恢复? ()

A. 冻结图层

B. 重命名图层

C. 添加图层

D. 清除图层

(11) 以下哪个选项不是选择集的选项: ()

A. WINDOW

B. FENCE

C. FILTER

D. GROUP

(12) “图层转换器”对话框可以从下列哪些文件中加载图层? ()

A. DWG,DWT,DWS

B. DWG,DWF,DXF

C. DWG,DWT,DWF

D. DWG,DWL,DWF

(13) 进行标准检查时,如果图形有不符合标准文件的地方,用户 ()

A. 必须进行修改以满足标准

B. 可以忽略该问题

C. 让AutoCAD软件自动处理

D. 标记该问题以后处理

(14) 当有多个文件需要用同一个标准文件进行检查茄孝时: ()

A. 手工一个一个进行标准文件配置和检查

B. 用标准批处理衫纳州检查器进行检查

C. 用多个标准文件一一对应进行检查

D. 无法检查

(15) 控制显示次序的命令是: ()

A. RASTER ORDER

B. IMAGE ORDER

C. DRAWORDER

D. OLE ORDER

(16) 使用DRAWORDER命令降低了显示速度: ()

A. 是

B. 否

(17) 能用光栅图像的边界去修剪矢量图形吗? ()

A. 能

B. 否

(18) 以下不能对光栅图像的编辑命令是: ()

A. MOVE

B. COPY

C. STRETCH

D. ROTATE

(19) 能否将光栅图像的边界变成任意形状:()

A. 能

B. 否

(20) 用BHATCH命令中的SOLID选项进行实心填充后,能显示出填充的边界和边界中的图形或文字的是:()

A. 冻结实心填充所在的图层

B. 关闭实心填充所在的图层

C. DRAWORDER

D. CLARITY

(21) 能否将DWG图形输出成光栅图像:()

A. 能

B. 否

(22) 属性的定义:()

A. 块必须定义属性

B. 一个块中最多只能定义一个属性

C. 多个块可以共用一个属性

D. 一个块中可以定义多个属性

(23) 属性和块的关系: ()

A. 属性和块是平等关系

B. 属性必须包含在块中

C. 属性是块中非图形信息的载体

D. 块中可以只有属性而无图形对象

(24) 属性提取过程中: ()

A. 必须定义样板文件

B. 一次只能提取一个图形文件中的属性

C. 一次可以提取多个图形文件中的属性

D. 只能输出文本格式文件txt

(25) 编辑属性的途径有:()

A. 双击属性定义进行属性编辑

B. 双击包含属性的块进行属性编辑

C. 应用块属性管理器编辑属性

D. 以上全部

(26) 附加型外部参照与覆盖外部参照的不同在于: ()

A. 占用较少的磁盘空间

B. 仅显示剪裁下来的图层和区域

C. 显示嵌套的外部参照

D. 不能循环引用

(27) 绑定就是将外部参照转化为块: ()

A. 是

B. 否

(28) 为了保证外部参照使用的总是最新版本,必须: ()

A. 保存图形

B. 关闭当前图形并重新打开

C. 重新加载外部参照

D. 必须绑定

(29) 要保持对外部参照依赖图层的修改,必须: ()

A. 保存文件对话框中设置

B. 在选项对话框中设置

C. 在图层特性管理器中设置

D. 在外部参照管理器中设置

(30) 要防止他人随意对外部参照原图的修改,应将: ()

A. 按需加载外部参照设置为“禁用”

B. “允许其它用户参照编辑当前图形”复选框勾掉

C. 图形文件设置为只读

D. 外部参照图形文件上的图层锁定

(31) 如果按需加载设为“启用”,在同一时刻,一张图: ()

A. 只能被一个进程用作外部参照

B. 可以被多个进程用作外部参照

C. 可以被多个进程同时打开

D. 只能被一个进程打开,其它进程都不能将它作为外部参照

(32) 以下哪些命令是将数据从其他应用程序,通过剪贴板,作为OLE对象进入到AutoCAD中的: ()

A. 复制链接

B. 粘贴

C. 选择性粘贴

D. 插入

(33) 在AutoCAD中,超级链接可以指向信息的类型有: ()

A. 一个www网址

B. 一个文件绝对位置

C. 一个文件相对位置

D. 以上全部

(34) 在保护图纸安全的前提下,和别人进行设计交流的途径为: ()

A. 不让别人看图(.dwg文件),直接口头交流

B. 只看.dwg文件,不进行标注

C. 把图纸文件缩小到别人看不太清楚为止

D. 利用电子打印进行.dwf文件的交流

(35) 在三维建模过程中,定义不同的UCS是为了: ()

A. 更快速发建模

B. 更准确地建模

C. 给建模过程加上一标记

D. A和B

(36) 表面模型和实体模型比较: ()

A. 数据结构相对简单

B. 无法显示出遮挡效果

C. 没有体的信息

D. A和C

(37) “偏移面”命令和“拉伸面”命令的区别 ()

A. 只有“偏移面”命令可以对实体表面进行修改

B. 只有“拉伸面”命令可以对实体表面进行修改

C. “偏移面”命令自动维持偏移前三维模型的空间拓扑关系,而“拉伸面”命令不行

D. 没有区别,可以通用

(38) 对于“抽壳”命令 ()

A. 必须指定抽壳偏移距离

B. 必须选择抽壳对象

C. 选择的抽壳对象必须是有效的ACIS实体

D. 以上都对

(39) 工具栏生成或修改完成后,新的内容存放在: ()

A. MNC文件

B. MNS文件

C. MNU文件

(40) 幻灯片清单文件的名字长度: ()

A. 按Windows98的规则,可以使用长文件名

B. 8个字符长

C. 可以用长文件名,但是在SLIDELIB.EXE的参数中要按8位长度处理

按图形尺寸精确绘图(尺寸标注、文字标注、轴线符号不画),绘图方法、图形编辑方法不限,未明确要求线宽者,线宽为0;图示中有未标注尺寸的地方,请按建筑或机械有关规范自行定度尺寸。绘制完成后以.dwg格式保存至考试文件夹。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存