程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 用Visual C#向Excel2002傳輸XML數據

用Visual C#向Excel2002傳輸XML數據

編輯:C#入門知識

  本文說明如何創建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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved