程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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