当前位置:编程学习 > XML/UML >>

用Visual C#向Excel2002传输XML数据

  本文说明如何创建DataSet 对象,以及如何使用WriteXML方法将该对象包含的数据导出到 XML 文件中。生成的 XML 文件可以直接在 Excel 中打开。为便于说明,使用 Jet OLEDB 提供程序从 Microsoft Access Northwind 示例数据库创建了DataSet 对象。但是,类似的代码可与您使用 Visual C# .NET 创建的任何DataSet 对象一起使用。

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

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

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

  4. 将下面的using 指令添加到 Form1.cs 顶部:

using System.Data.OleDb;
using System.Xml;

   5.将下面的私有成员变量添加到 Form1 类中:

private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + " C:\Program Files\Microsoft Office\Office10\Samples\" + "Northwind.mdb;";

   注意:您可能需要修改连接字符串中 Northwind.mdb 的路径,以便与您安装的位置相匹配。

  6.在button1_Click 处理程序中添加以下代码:

  //Connect to the data source.
         OleDbConnection objConn = new OleDbConnection (strConn);
         try
         {
            objConn.Open();
            //Fill a dataset with records from the Customers table.
            OleDbCommand objCmd = new OleDbCommand(
               "Select CustomerID, CompanyName, ContactName, "
               + "Country, Phone from Customers", objConn);
            OleDbDataAdapter objAdapter = new OleDbDataAdapter();
            objAdapter.SelectCommand = objCmd;
            DataSet objDataset = new DataSet();
            objAdapter.Fill(objDataset);

            //Create the FileStream to write with.
            System.IO.FileStream fs = new System.IO.FileStream(
               "C:\Customers.xml", System.IO.FileMode.Create);
            //Create an XmlTextWriter for the FileStream.
            System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(
               fs, System.Text.Encoding.Unicode);
            //Add processing instructions to the beginning of the XML file, one
            //of which indicates a style sheet.
            xtw.WriteProcessingInstruction("xml", "version=1.0");
            //xtw.WriteProcessingInstruction("xml-stylesheet",
              // "type=text/xsl href=customers.xsl");
            //Write the XML from the dataset to the file.
            objDataset.WriteXml(xtw);
            xtw.Close();
            //Close the database connection.
            objConn.Close();
         }
         catch (System.Exception ex)
         {
            MessageBox.Show(ex.Message);
         }
          

  7. 按 F5 键生成并运行程序。

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

  9. 启动 Excel 2002 或 Excel 2003 并打开 C:Customers.xml 输出文件。

  10. 在您看到已将 XML 分析成新工作簿中的行和列后,请关闭文件并退出 Excel。

  使用样式表格式化 XML

  该步骤介绍如何使用样式表 (XSL) 来转换 XML 数据在 Excel 工作簿中的格式和排列方式。

   1. 使用任何 HTML 编辑器或文本编辑器(例如 Notepad.exe),将下面的 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">Customer ID</TD>
          <TD CLASS="HDR">Company</TD>
          <TD CLASS="HDR">Contact</TD>
          <TD CLASS="HDR">Country</TD>
          <TD CLASS="HDR">Phone</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 使用该指令来查找样式表 (Customers.xsl)。

  3.按 F5 键生成并运行程序。

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

   5.启动 Excel 2002 或 Excel 2003 并打开 C:Customers.xml 输出文件。

   6.因为从 Excel 可以看到 XML 中样式表的处理指令,所以您在打开文件时会收到一个对话框提示。在导入 XML对话框中,选择打开该文件,应用以下样式表。在列表中,选择Customers.xsl并单击确定。注意,XML 数据已格式化,并已经根据样式表排列各个列。

   7.关闭该文件并退出 Excel。
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,