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#

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 307029 - Xem s?n ph?m mà bài này áp d?ng vào.
Đ?i v?i m?t Microsoft Visual Basic.NET Phiên b?n c?a bài vi?t này, xem 307021.
Bung t?t c? | Thu g?n t?t c?

? Trang này

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):
    http://msdn2.Microsoft.com/en-US/Library/ms173077.aspx
  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 arguments
    oBooks.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

Thu?c tính

ID c?a bài: 307029 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
T? khóa: 
kbhowtomaster kbmt KB307029 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com