如何通过读取XML配置文件导入Excel文件到数据中

我想问一下,如何通过读取一个含有Excel文件表格信息的XML配置文件,来把多个不同规格的Excel文件导入到数据库中,比如这个XML文件包含两个Excel模板文件的列配置信息,我想通过一个asp.net程序根据这个配置文件的信息来导入不同的Excel文件到数据库中的不同表中。请问哪里有相关教程啊,我找了半天都没找到,谢谢了!

1.首先,我们正常使用Excel的另存为,看看能否顺利地直接另存为XML文件。

方法:

点击Excel左上角按钮,在弹出的选项中,点击“另存为”

或者直接在Excel中按下快捷键F12

2.选择最后一项:其他格式。

3.接下来,重命名一下文件名,并选择文件类型为:

XML数据(*.xml)

4.点击“保存”按钮,会出现如下错误警告:

因为工作簿不包含任何XML映射,所以无法保存任何XML数据。

单击“帮助”以获取详细信息。

5.这个原因是我们的工作簿只是普通的Excel数据,的确没有做过XML映射,或者Excel数据也不是从XML文件导入的。

这时,我们尝试另存为另一种文件类型:

XML电子表格2003(*.xml)

6.点击保存按钮。

7.这时会弹出一个兼容性对话框,问你是否保持工作簿的这种格式。

8.点击“是”,即可将Excel保存为XML格式的文档了。

我们使用软件打开这个XML文档(例如通过Chrome浏览器),发现格式正常,Excel数据也全在里面。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
一、根据数据集生成 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.0;Data 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:bisque;font-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。您可以使用这些操作将重要的功能添加到应用程序中。尝试本文提供的代码示例,您可组合不同操作并增强应用程序的有效性。

参考资料:http://www.gdglc.com本回答被提问者和网友采纳

如何使用xml配置导入excel数据
1.首先,我们正常使用Excel的另存为,看看能否顺利地直接另存为XML文件。方法:点击Excel左上角按钮,在弹出的选项中,点击“另存为”或者直接在Excel中按下快捷键F12 2.选择最后一项:其他格式。3.接下来,重命名一下文件名,并选择文件类型为:XML数据(*.xml)4.点击“保存”按钮,会出现如下错误...

如何将XML文件导入到Excel表中?
步骤一:本技巧使用的XML是一个学生信息表。打开Excel文件,打开“开发工具”选项卡,在"XML"组中单击“导入”按钮。步骤二:单击“确定”按钮关闭Excel提示对话框采用默认的架构导入XML文件,Excel打开“导入数据”对话框,设置数据放置的位置。单击“确定”按钮关闭对话框导入数据。步骤三:在“开发工具”...

XML文件怎么导入Excel中进行处理?
1、打开进入电脑保存文件的目录,找到已有的Xml文件,现用一个名为Test的来测试,然后按照下面操作新建一个Excel工资表;2、新建完成后双击打开Excel,然后利用最简便的方法,那就是直接把已有的Xml文件拖拽到Excel工作表中去,这时Excel会出现一个提醒,提醒你是否在这一个格上面实例化Xml,直接点击确认即...

怎么将XML数据导入到Excel文件中?
1.点击数据中的“来自其他来源”,选择“来自xml数据导入”:2.找到XML文件,并点击确定,选择放置位置:3.这样,就将XML文件导入到Excel中,转换成Excel文件了。

如何将XML数据导入到Excel表格?
1. 定位到存储XML文件的文件夹。2. 启动Excel应用程序并新建一个空白工作簿。3. 将XML文件拖拽到Excel工作表中。4. 在弹出的"打开XML"窗口中选择合适的导入选项。5. 点击"确定"以完成XML数据的转换和填充到Excel中。6. 对转换后的数据进行编辑并保存工作簿。7. 成功获得以.xlsx为扩展名的Excel...

如何读取xml文件导出为excel文件
第一步,通过java把数据从xml文件中读出来。这个在Java中是一个很普通很普遍的问题,使用任意一个Java的xml解析库(比如jdom,dom4j等)都可以完成。第二步,数据从xml文件读出后,就需要把数据写入excel文件。这个问题其实就是在java如何操作excel文件。在Java中操作Excel文件,目前大致有三种方法。第一种,...

怎么把xml文件转换为excel文件
1. 首先,在Excel的“数据”选项卡下,点击“获取外部数据”工作组中的“自其他来源”下的“来自XML数据导入”按钮,如下图所示。2. 接着,在弹出的“获取数据源”对话框中,找到并选择要导入的XML文件,然后点击“打开”按钮,如下图所示。3. 打开XML文件后,会弹出提示框,直接点击“确定”按钮。

如何将XML结果文件导入excel
方式1:通过规则管理界面手工导入数据,然后导出excel数据 1.1,在硬盘的主题名文件夹里选中多个xml文件直接压缩到zip包,不要夹杂除xml外的文件夹或其他文件类型。1.2,登录集搜客官网,进入会员中心->规则管理->我的规则。1.3,点击对应主题名进入到管理页面,点击“导入数据”按钮,点击附件,选择数据...

如何将XML文件导入Excel中
单击“数据”选项卡下的“获取外部数据”工作组中的“自其他来源”下的“来自XML数据导入”,如下图所示 如下图所示,在弹出的“获取数据源”的对话框中找到要导入的XML文件,后单击“打开”按钮。单击“打开”按钮后将弹出如下图所示的提示,直接单击“确定”按钮。在弹出的“导入数据”对话框中可以...

如何将XML转换成Excel文件
选择打开该文件,不应用样式表以使用标准格式,或选择打开该文件,应用以下样式表以根据样式表编排数据格式。如果看到“打开XML”对话框,选择作为只读Excel工作簿。单击文件菜单。单击另存为…。导航至文件保存位置。在“保存类型”下拉菜单中选择Excel工作簿。单击保存。这样就能将XML数据保存为Excel文件。方...

相似回答