Visual C# kullanarak Microsoft Excel 2002 veya Microsoft Excel 2003 için XML veri aktarım nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 307029 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 307021.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Excel 2002, Genişletilebilir Biçimlendirme Dili (XML) biçiminde dosyaları açma işlevi tanıtır. Iyi biçimlendirilmiş bir XML dosyasına doğrudan Excel 2002 veya Excel 2003 kullanıcı arabirimi veya kodunu kullanarak açabilirsiniz.

Microsoft Visual C# 2005 veya Microsoft Visual C# .NET ile sorunsuz biçimlendirmeyle verileri sunmak için bir çalışma kitabındaki veri aktarmak için Excel'in XML işlevselliği yararlanır ve seçeceğiniz düzenleme alabilir. Bu makalede, bu görevi gerçekleştirmek gösterilmiştir.

Kullanılan Excel 2002 veya Excel 2003 için bir DataSet XML oluştur

Bu bölüm, bir DataSet nesnesi oluşturma ve içerdiği verileri, WriteXML yöntemini kullanarak bir XML dosyasına vermek verilmektedir. Oluşturulan XML dosyasını doğrudan Excel'de açılabilir. Gösterim amacıyla Jet OLEDB Sağlayıcısı'nı kullanarak Microsoft Access Northwind örnek veritabanı ' DataSet nesnesi oluşturulur. Ancak, Visual C# 2005 veya Visual C# .NET ile oluşturduğunuz herhangi bir DataSet nesne benzer bir kod çalışır.
  1. Microsoft Visual Studio 2005 veya Microsoft Visual Studio. NET'i başlatın. Dosya menüsünde Yeni'yi tıklatın ve Project ' ı tıklatın. Visual C# Projects türlerinden Windows Application ' ı seçin. Varsayılan olarak, Form1 oluşturulur.
  2. Görünüm menüsünden araç görüntüleyin ve Form1'e bir düğme eklemek için araç kutusu seçin.
  3. Button1</a1> çift tıklatın. Formun kod penceresi görüntülenir.
  4. Aşağıdaki yönergeleri kullanarak Form1.cs en üstüne ekleyin:
    using System.Data.OleDb;
    using System.Xml;
    					
  5. Aşağıdaki özel üye değişkeni Form1 sınıfına ekleyin:
    private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    	+ " C:\\Program Files\\Microsoft Office\\Office10\\Samples\\"
    	+ "Northwind.mdb;";
    					
    Not Northwind.mdb yolunu yüklemenizin eşleştirmek için bağlantı dizesindeki'ni değiştirmeniz gerekebilir.
  6. Button1_Click işleyicisine aşağıdaki kodu ekleyin: veri kaynağına
    //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);
             } 
    					
    Not Visual Studio 2005'te kodunu değiştirmeniz gerekir. Windows Forms bir proje oluşturduğunuzda, varsayılan olarak, Visual C# bir form projeye ekler. Form1 form olarak adlandırılır. Form temsil eden iki dosya Form1.cs ve Form1.designer.cs olarak adlandırılır. Kodu, Form1.cs içinde yazın. Form1.designer.cs denetimleri araç Kutusu'ndan bırakarak gerçekleştirilen tüm eylemleri uygulayan kodu burada Windows Form Designer yazar dosyadır.

    Daha fazla bilgi için Visual C# 2005 Windows Form tasarımcısında, ziyaret edin, aşağıdaki Microsoft Developer Network (MSDN) Web sitesi:
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  7. Oluşturmak ve bu programı çalıştırmak için F5 tuşuna basın.
  8. XML dosyası oluşturmak için Button1 tıklattıktan sonra program sona erdirmek için Form1'nı kapatın.
  9. Excel 2002 veya Excel 2003'ü başlatın ve C:\Customers.xml çıktı dosyası.
  10. Nasıl XML satırlar ve sütunlar yeni çalışma kitabındaki ayrıştırıldı karşılaştığınız sonra dosyayı kapatın ve Excel'den çıkın.

Bir stil sayfası kullanılarak XML biçimi

Bu adım, stil sayfasının (XSL) XML verileri biçimlendirilmiş ve diğer Excel çalışma kitabında düzenlendiği nasıl dönüştürmek için nasıl kullanılacağını gösterir.
  1. Using any HTML editor or a text editor (such as Notepad.exe), save the following XSL as 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. Aşağıdaki satırı kod Button1_Click işleyicisindeki uncomment:
    xtw.WriteProcessingInstruction("xml-stylesheet", 
    	"type='text/xsl' href='customers.xsl'");
    					
    bu kod satırı, bir işlem yönergesi, Excel XML dosyasına yazar, stil sayfası (Customers.xsl) bulmak için kullanır.

  3. Oluşturmak ve bu programı çalıştırmak için F5 tuşuna basın.
  4. XML dosyası oluşturmak için Button1 tıklattıktan sonra program sona erdirmek için Form1'nı kapatın.
  5. Excel 2002 veya Excel 2003'ü başlatın ve C:\Customers.xml çıktı dosyası.
  6. Işlem yönergesi için XML'deki stil sayfasında Excel'in görür için dosyayı açtığınızda, bir iletişim kutusu istemi alırsınız. XML Al iletişim kutusunda, dosyayı aşağıdaki stil uygulanmış Aç ' ı tıklatın. Listesinde, Customers.xsl seçin ve Tamam ' ı tıklatın. XML verilerini biçimlendirilir ve sütunları stil sayfasına göre düzenlenmiş olduğunu unutmayın.
  7. Dosyayı kapatın ve Excel'den çıkın.

Dönüştürülmüş XML açmaya Kodu'nu kullanın.

Bu noktaya kadar Excel'de kullanıcı arabirimini kullanarak XML dosyası açtınız. Bu bölüm, Excel çalışma kitabını programsal olarak açmayı otomatikleştirme gösterilmiştir. Aşağıdaki örnek, kullanıcı müdahalesi olmadan dönüştürülmüş XML, XML HTML <a1>DataSet</a1> nesnesindeki dönüştürerek açmak verilmektedir.
  1. Microsoft Excel 10.0 Nesne Kitaplığı ya da Microsoft Excel 11.0 nesne kitaplığına bir başvuru ekleyin. Bunu yapmak için şu adımları izleyin:
    1. Proje) menüsünde Add Reference ' ı tıklatın.
    2. COM sekmesinde, Microsoft Excel 10.0 Nesne Kitaplığı ya da Microsoft Excel 11.0 Nesne Kitaplığı'nı bulun ve Seç ' i tıklatın.
    3. Seçiminizi kabul etmek için Tamam <a0>Başvuru Ekle</a0> iletişim kutusunda tıklatın. Seçtiğiniz kitaplığının sar?c?lar? oluşturmak isteyen bir ileti alırsanız, Evet ' i tıklatın.
  2. Aşağıdaki yönergeleri kullanarak Form1.cs en üstüne ekleyin:
    using Excel = Microsoft.Office.Interop.Excel;
    					
  3. Visual C# 2005 veya Visual C# .NET projede başka bir düğme Form1'e ekleyin.
  4. Button2</a1> çift tıklatın. Kod penceresi için formun görünür eklediğinizde aşağıdaki kodu Button2_Click işleyiciye: veri kaynağına
    //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. Oluşturmak ve bu programı çalıştırmak için F5 tuşuna basın.
  6. Button2 dönüştürülmüş XML Excel'de açmak için Ek Yardım düğmesini tıklatın.
Not Önceki örnek,, Excel 2002 ve Excel 2003 nesne modeli sergilemek programsal olarak da uygulanan stil sayfaları bir XML dosyasını açmanıza olanak sağlayan bir Açık XML yöntemi, ancak bu yöntemi ile bir <a0>Automation</a0> istemcisinden bu yöntemi kullanarak bilinen bir sorun yüzünden çağırmaz. Açık XML yöntemi, bir Excel makro çağrıldığında beklendiği gibi çalışır; ancak, bu yöntem bir Otomasyon istemciden çağrıldığında, Stil parametre yoksayılır. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
307230Hata: Açık XML yönteminin parametresini stil sayfalarını açtığınızda, Excel 2002 otomatikleştirme Yoksayılmış

Referanslar

Daha fazla bilgi için aşağıdaki Knowledge Base makalelerine bakın:
288215BILGI: Microsoft Excel 2002 ve XML
302084Nasıl yapılır: Visual C# .NET, Microsoft Excel'den otomatikleştirme
301216Nasıl yapılır: bir veritabanından bir DataSet nesnesi, Visual Basic .NET kullanarak doldurma
306023Visual C#. NET'i kullanarak, bir Excel çalışma kitabı için veri aktarım nasıl kullanılır

Özellikler

Makale numarası: 307029 - Last Review: 11 Aralık 2006 Pazartesi - Gözden geçirme: 7.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ADO.NET 1.0
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Excel 2003
Anahtar Kelimeler: 
kbmt kbhowtomaster KB307029 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:307029

Geri Bildirim Ver

 

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