Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để chuyển dữ liệu XML để Microsoft Excel 2002 hoặc Microsoft Excel 2003 bằng cách sử dụng Visual C#

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:307029
Đối với một Microsoft Visual Basic.NET Phiên bản của bài viết này, xem 307021.
TÓM TẮT
Excel 2002 giới thiệu chức năng cho việc mở tập tin định dạng Extensible Markup Language (XML). Một tệp XML là tốt được hình thành có thể được mở trực tiếp trong Excel 2002 hoặc Excel 2003 bằng cách sử dụng giao diện người dùng hoặc mã.

Với Microsoft Visual C# 2005 hoặc Microsoft Visual C#.NET, bạn có thể tận dụng lợi thế của Excel XML chức năng liền mạch chuyển dữ liệu đến một workbook để trình bày dữ liệu với định dạng và sắp xếp của sự lựa chọn của bạn. Bài viết này chứng tỏ làm thế nào để thực hiện nhiệm vụ này.

Tạo XML từ một tập dữ liệu để sử dụng trong Excel 2002 hoặc Excel 2003

Phần này minh hoạ cách để tạo ra một Số liệu đối tượng và xuất dữ liệu mà nó chứa một tập tin XML bằng cách sử dụng các WriteXML phương pháp. Các tệp tin XML được tạo ra có thể được mở trực tiếp trong Excel. Cho mục đích minh hoạ, những Số liệu đối tượng được tạo ra từ Microsoft truy cập Northwind mẫu cơ sở dữ liệu bằng cách sử dụng các nhà cung cấp OLEDB máy bay phản lực. Tuy nhiên, tương tự như mã hoạt động với bất kỳ Số liệu đối tượng mà bạn tạo với Visual C# 2005 hoặc Visual C#.NET.
  1. Bắt đầu Microsoft Visual Studio 2005 hoặc Microsoft Visual Studio.NET. Trên các Tệp trình đơn, nhấp vào Mới sau đó bấm Dự án. Chọn Ứng dụng Windows từ các loại Visual C# các dự án. Form1 được tạo ra theo mặc định.
  2. Trên các Xem trình đơn, chọn Hộp công cụ hiển thị hộp công cụ và thêm một nút vào Form1.
  3. Bấm đúp Button1. Cửa sổ mã cho các hình thức xuất hiện.
  4. Thêm dưới đây bằng cách sử dụng chỉ thị từ đầu của Form1.cs:
    using System.Data.OleDb;using System.Xml;					
  5. Thêm biến tư nhân viên sau đây vào các lớp học Form1:
    private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="	+ " C:\\Program Files\\Microsoft Office\\Office10\\Samples\\"	+ "Northwind.mdb;";					
    Chú ý Bạn có thể cần phải sửa đổi các đường dẫn đến Northwind.mdb trong chuỗi kết nối để phù hợp với cài đặt của bạn.
  6. Thêm mã sau đây để các button1_Click bộ xử lý:
    //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);         } 					
    Chú ýBạn phải thay đổi mã trong Visual Studio 2005. Theo mặc định, Visual C# thêm một hình thức dự án khi bạn tạo một dự án Windows Forms. Các hình thức được đặt tên Form1. Hai tập tin mà đại diện cho các hình thức được đặt tên là Form1.cs và Form1.designer.cs. Bạn viết mã trong Form1.cs. Các tập tin Form1.designer.cs là nơi các nhà thiết kế các hình thức Windows viết mã thực hiện tất cả các hành động mà bạn thực hiện bằng cách kéo và thả điều khiển từ hộp công cụ.

    Để biết thêm chi tiết về Windows Forms Designer Visual C# 2005, truy cập vào các nhà phát triển Microsoft sau trang Web mạng (MSDN):
  7. Nhấn F5 để xây dựng và chạy chương trình.
  8. Nhấp vào Button1 để tạo các tệp tin XML, sau đó đóng Form1 để kết thúc chương trình.
  9. Bắt đầu Excel 2002 hoặc Excel 2003 và mở tập tin đầu ra C:\Customers.xml.
  10. Sau khi bạn đã quan sát như thế nào các XML đã được phân tách thành các hàng và cột trong bảng tính mới, hãy đóng tệp và bỏ Excel.

Định dạng XML bằng cách sử dụng một tờ kiểu dáng

Bước này cho bạn thấy làm thế nào để sử dụng một tờ kiểu dáng (XSL) để biến đổi như thế nào dữ liệu XML định dạng và bố trí trong một bảng tính Excel.
  1. Sử dụng bất kỳ trình soạn thảo HTML hoặc trình soạn thảo văn bản (ví dụ như Notepad.exe), tiết kiệm XSL sau là 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. Bỏ ghi chú dòng sau mã trong các button1_Click bộ xử lý:
    xtw.WriteProcessingInstruction("xml-stylesheet", 	"type='text/xsl' href='customers.xsl'");					
    Này dòng mã viết một hướng dẫn chế biến cho các tệp tin XML Excel sử dụng để xác định vị trí các stylesheet (Customers.xsl).

  3. Nhấn F5 để xây dựng và chạy chương trình.
  4. Nhấp vào Button1 để tạo các tệp tin XML, sau đó đóng Form1 để kết thúc chương trình.
  5. Bắt đầu Excel 2002 hoặc Excel 2003 và mở tập tin đầu ra C:\Customers.xml.
  6. Bởi vì Excel thấy các chỉ dẫn xử lý cho tờ kiểu dáng trong các XML, bạn nhận được một dấu nhắc hộp thoại khi bạn mở tập tin. Trong các Nhập khẩu XML hộp thoại, chọn Mở tập tin với stylesheet sau đây áp dụng. Trong danh sách, chọn Customers.XSL và nhấp vào Ok. Lưu ý rằng các dữ liệu XML được định dạng và các cột đã được sắp xếp theo điều stylesheet.
  7. Hãy đóng tệp và bỏ Excel.

Sử dụng mã để mở XML chuyển

Đến thời điểm này, bạn đã mở các tệp tin XML bằng cách sử dụng giao diện người dùng trong Excel. Phần này chứng tỏ làm thế nào để tự động hoá Excel để mở bảng tính lập trình. Các mẫu sau đây minh hoạ làm thế nào để mở XML chuyển mà không có sự can thiệp của người dùng bằng đầu tiên chuyển đổi XML trong các Số liệu đối tượng để HTML.
  1. Thêm một tham chiếu đến các Microsoft Excel 10,0 đối tượng thư viện hoặc thư viện đối tượng Microsoft Excel 11,0. Để thực hiện việc này, hãy làm theo những bước sau:
    1. Trên các Dự án trình đơn, nhấp vào Thêm tài liệu tham khảo.
    2. Trên các COM tab, xác định vị trí Microsoft Excel 10,0 đối tượng thư viện hoặc thư viện đối tượng Microsoft Excel 11,0 và nhấp vào Chọn.
    3. Nhấp vào Ok trong các Thêm tài liệu tham khảo hộp thoại để chấp nhận lựa chọn của bạn. Nếu bạn nhận được một nhắc để tạo ra hàm bao cho thư viện mà bạn đã chọn, bấm Có.
  2. Thêm dưới đây bằng cách sử dụng chỉ thị từ đầu của Form1.cs:
    using Excel = Microsoft.Office.Interop.Excel;					
  3. Trong Visual C# 2005 hoặc Visual C#.NET dự án, thêm một nút vào Form1.
  4. Bấm đúp Button2. Khi cửa sổ mã cho các hình thức xuất hiện, thêm mã sau đây để các Button2_Click bộ xử lý:
    //Connect to the data source.OleDbConnection objConn = new OleDbConnection (strConn);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.htm", System.IO.FileMode.Create);//Create an XmlTextWriter for the FileStream.System.Xml.XmlTextWriter xtw = new System.Xml.XmlTextWriter(	fs, System.Text.Encoding.Unicode);//Transform the XML using the stylesheet.XmlDataDocument xmlDoc = new XmlDataDocument(objDataset);System.Xml.Xsl.XslTransform xslTran = new System.Xml.Xsl.XslTransform();xslTran.Load("C:\\Customers.xsl");xslTran.Transform(xmlDoc, null, xtw);//Open the HTML file in Excel.Excel.Application oExcel = new Excel.Application();oExcel.Visible=true;oExcel.UserControl=true;Excel.Workbooks oBooks = oExcel.Workbooks;object oOpt = System.Reflection.Missing.Value; //for optional argumentsoBooks.Open("c:\\customers.htm", oOpt, oOpt, oOpt, 	oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, oOpt, 	oOpt, oOpt, oOpt);					
  5. Nhấn F5 để xây dựng và chạy chương trình.
  6. Nhấp vào Button2 ñeå môû XML chuyển trong Excel.
Chú ý Trong khi mô hình đối tượng Excel 2003 và Excel 2002 lộ diện OpenXML phương pháp cho phép bạn lập trình mở một tệp XML với stylesheets được áp dụng, các mẫu trước đó không gọi phương pháp này nhờ một vấn đề được biết đến với việc sử dụng phương pháp này từ một khách hàng tự động hóa. Các OpenXML phương pháp làm việc như mong đợi khi nó được gọi là từ một Excel vĩ mô; Tuy nhiên, khi phương pháp này được gọi là từ một khách hàng tự động hóa, các StyleSheet tham số được bỏ qua.Để biết thêm chi tiết, bấm vào số bài viết dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
307230 LỖI: StyleSheets tham số của phương pháp OpenXML bị bỏ qua khi tự động hoá Excel 2002
THAM KHẢO
Để biết thêm chi tiết, xem bài viết cơ sở kiến thức sau:
288215 Thông tin: Microsoft Excel 2002 và XML
302084 Làm thế nào để tự động hoá Microsoft Excel từ Visual C#.NET
301216 Làm thế nào để cư trú một đối tượng tập dữ liệu từ cơ sở dữ liệu bằng cách sử dụng Visual Basic.NET
306023 Làm thế nào để chuyển dữ liệu vào một bảng tính Excel bằng cách sử dụng Visual C#.NET
OpenXML WriteXML XSLTransform biến đổi biểu định kiểu

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 307029 - Xem lại Lần cuối: 08/27/2011 23:33:00 - Bản sửa đổi: 2.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Excel 2002 Standard Edition

  • kbhowtomaster kbmt KB307029 KbMtvi
Phản hồi