วิธีการถ่ายโอนข้อมูล XML ไปยัง Microsoft Excel 2002 หรือ Microsoft Excel 2003 โดยใช้ Visual c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 307029 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual Basic .NET ของบทความนี้ ดู307021.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Excel 2002 แนะนำฟังก์ชันการทำงานสำหรับการเปิดแฟ้มในรูปแบบ Extensible Markup ภาษา (XML) สามารถเปิดแฟ้ม XML ที่ well-formed ใน Excel 2002 หรือ Excel 2003 โดยตรง โดยใช้อินเทอร์เฟซสำหรับผู้ใช้หรือรหัส

ด้วย Microsoft Visual c# 2005 หรือ Microsoft Visual c# .NET คุณสามารถใช้ประโยชน์จากฟังก์ชัน XML ของ Excel เพื่อโอนย้ายข้อมูลไปยังสมุดงานนำเสนอข้อมูลที่ มีรูปแบบอย่างราบรื่นและการจัดเรียงตัวเลือกของคุณ บทความนี้อธิบายวิธีการทำงานนี้

สร้าง XML จากเป็นชุดข้อมูลสำหรับใช้ใน Excel 2002 หรือ Excel 2003

ส่วนนี้แสดงให้เห็นถึงวิธีการสร้างเป็นชุดข้อมูลวัตถุ และส่งออกข้อมูลที่ประกอบด้วยแฟ้ม XML โดยใช้การWriteXMLวิธีการ สามารถเปิดแฟ้ม XML ที่สร้างขึ้นโดยตรงใน Excel สำหรับวัตถุประสงค์ในภาพประกอบ การชุดข้อมูลมีสร้างวัตถุจากฐานข้อมูล Microsoft Access Northwind ตัวอย่าง โดยใช้ตัวให้บริการ OLEDB Jet อย่างไรก็ตาม รหัสเหมือนกับที่ทำงานกับใด ๆชุดข้อมูลวัตถุที่คุณสร้างขึ้น โดยใช้ Visual 2005 c# หรือ Visual .NET c#
  1. เริ่ม Microsoft Visual Studio 2005 หรือ Microsoft Visual Studio .NET ในการแฟ้ม:เมนู คลิกใหม่แล้ว คลิกProject. เลือกแอพลิเคชันของ windowsจากชนิดโครงการ c# แสดงผล Form1 จะถูกสร้างขึ้นตามค่าเริ่มต้น
  2. ในการมุมมองเมนู การเลือกกล่องเครื่องมือเมื่อต้องการแสดงในกล่องเครื่องมือ และเพิ่มปุ่มไป Form1
  3. คลิกสองครั้งbutton1. หน้าต่างรหัสสำหรับแบบฟอร์มปรากฏขึ้น
  4. เพิ่มต่อไปนี้การใช้directives ไปด้านบนของ 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);
             } 
    					
    หมายเหตุ:คุณต้องเปลี่ยนรหัสใน Visual Studio 2005 โดยค่าเริ่มต้น Visual c# เพิ่มฟอร์มหนึ่งไปโครงการเมื่อคุณสร้างโครงการแบบฟอร์ม Windows แบบฟอร์มมีชื่อ Form1 มีการตั้งชื่อแฟ้มที่สองที่แสดงแบบฟอร์ม Form1.cs และ Form1.designer.cs คุณสามารถเขียนรหัสใน Form1.cs แฟ้ม Form1.designer.cs คือ ซึ่งผู้ออกแบบฟอร์ม Windows เขียนรหัสที่ใช้การดำเนินการทั้งหมดที่ คุณดำเนินการ โดยการลาก และปล่อยตัวควบคุมจากกล่องเครื่องมือ

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบฟอร์ม Windows ใน Visual 2005 c# นักพัฒนาต่อไปนี้ของ Microsoft ที่เข้าเยี่ยมชมเว็บไซต์ของเครือข่าย (MSDN):
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  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. uncomment บรรทัดต่อไปนี้ของรหัสในนั้น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

ใช้รหัสเมื่อต้องการเปิด Transformed XML

ถึงจุดนี้ คุณได้เปิดแฟ้ม XML โดยใช้อินเทอร์เฟซสำหรับผู้ใช้ใน Excel ส่วนนี้อธิบายวิธีการทำให้ Excel ให้เปิดสมุดงานโดยทางโปรแกรม ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการเปิด XML transformed โดยไม่มีการขัดจังหวะโดยผู้ใช้ โดยการคลิแรก transforming XML ในนั้นชุดข้อมูลวัตถุการ HTML
  1. เพิ่มการอ้างอิงไปยังการไลบรารีวัตถุ Microsoft Excel 10.0 หรือการไลบรารีวัตถุ Microsoft Excel 11.0. โดยให้ทำตามขั้นตอนต่อไปนี้::
    1. ในการProjectเมนู คลิกเพิ่มการอ้างอิง.
    2. ในการcomแท็บ ค้นหาการไลบรารีวัตถุ Microsoft Excel 10.0 หรือการไลบรารีวัตถุ Microsoft Excel 11.0คลิกเลือก.
    3. คลิกตกลงในการเพิ่มการอ้างอิงกล่องโต้ตอบเพื่อยอมรับสิ่งที่คุณเลือก ถ้าคุณได้รับการพรอมต์เพื่อสร้าง wrappers สำหรับไลบรารีที่คุณเลือก คลิกใช่.
  2. เพิ่มต่อไปนี้การใช้directives ไปด้านบนของ Form1.cs:
    using Excel = Microsoft.Office.Interop.Excel;
    					
  3. ในโครงการ Visual 2005 c# หรือ.NET c# Visual เพิ่มปุ่มอื่น Form1
  4. คลิกสองครั้งButton2. เมื่อหน้าต่างรหัสสำหรับแบบฟอร์มจะ เพิ่มโค้ดต่อไปนี้ไปButton2_Clickตัวจัดการ:
    //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. กด F5 เพื่อสร้างและเรียกใช้โปรแกรม
  6. คลิกButton2เมื่อต้องการเปิด transformed XML ใน Excel
หมายเหตุ:ในขณะที่ Excel 2002 และรุ่นของ Excel 2003 วัตถุให้เป็นOpenXMLวิธีที่ช่วยให้คุณสามารถเปิดแฟ้ม XML โดยทางโปรแกรมที่ มี stylesheets ที่ใช้ ตัวอย่างก่อนหน้านี้ไม่เรียกเมธอดนี้เนื่องจากถึงปัญหาที่ทราบอยู่แล้วโดยใช้วิธีนี้จากการทำงานอัตโนมัติที่ไคลเอ็นต์ กระบวนการOpenXMLวิธีการทำงานอย่างที่คาดไว้เมื่อมีเรียกจากแมโคร Excel อย่างไรก็ตาม เมื่อวิธีการนี้ถูกเรียกจากไคลเอนต์ทำงานอัตโนมัติ การสไตล์ชีพารามิเตอร์ถูกละเว้นสำหรับข้อมูลเพิ่มเติม โปรดคลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
307230BUG: StyleSheets พารามิเตอร์ของวิธีการ OpenXML ละเว้นเมื่ออัตโนมัติ Excel 2002

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม ให้ดูบทความต่อไปนี้ของ Knowledge Base:
288215ข้อมูล: Microsoft Excel 2002 และ XML
302084วิธีดำเนินการ Microsoft Excel จาก Visual .NET c# อัตโนมัติ
301216วิธีการเติมข้อมูลวัตถุเป็นชุดข้อมูลจากฐานข้อมูล โดยใช้ Visual Basic .NET
306023วิธีการถ่ายโอนข้อมูลไปยังสมุดงาน Excel โดยใช้ Visual .NET c#

คุณสมบัติ

หมายเลขบทความ (Article ID): 307029 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Keywords: 
kbhowtomaster kbmt KB307029 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:307029

ให้ข้อเสนอแนะ

 

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