Ako previesť údaje XML na program Microsoft Excel 2002 alebo Microsoft Excel 2003 pomocou Visual C#

Preklady článku Preklady článku
ID článku: 307029 - Zobraziť produkty, ktorých sa tento článok týka.
Pre Microsoft Visual Basic.ČISTÁ verziu tohto článku, pozri 307021.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Excel 2002 zavádza funkčnosť pre otváranie súborov vo formáte Extensible Markup Language (XML). Súbor XML je správne formátovaný môžete otvoriť priamo v programe Excel 2002 alebo Excel 2003 pomocou používateľského rozhrania alebo kód.

S Microsoft Visual C# 2005 alebo Microsoft Visual C#.NET, môžete mať výhodu funkcionality XML programu Excel bezproblémovo prenosu údajov do zošita predložiť údaje s formátovaním a dojednanie podľa vášho výberu. Tento článok ukazuje ako na splnenie tejto úlohy.

Generovať XML z množiny údajov pre použitie v programe Excel 2002 alebo Excel 2003

Tento oddiel ilustruje, ako vytvoriť Množina údajov objekt a export údajov, ktoré obsahuje súbor XML pomocou WriteXML metóda. Vygenerovaný súbor XML môžete otvoriť priamo v programe Excel. Pre ilustračné účely, Množina údajov objekt je vytvorený zo vzorovej databázy Northwind programu Microsoft Access pomocou Jet OLEDB poskytovateľa. Však podobné kód funguje s akoukoľvek Množina údajov objekt, ktorý vytvoríte s Visual C# 2005 alebo Visual C#.NET.
  1. Spustite program Microsoft Visual Studio 2005 alebo Microsoft Visual Studio.NET. Na Súbor ponuky, kliknite na tlačidlo Nové a potom kliknite na tlačidlo Project. Vyberte Windows aplikácie z typov Visual C# projekty. Form1 sa vytvorí na základe predvoleného nastavenia.
  2. Na View menu vyberte Toolbox na zobrazenie panela s nástrojmi a pridať tlačidlo, na Form1.
  3. Dvakrát kliknite na Button1. Zobrazí sa okno kód pre formulár.
  4. Doplní sa nasledujúce pomocou smerníc do hornej časti Form1.cs:
    using System.Data.OleDb;
    using System.Xml;
    					
  5. Pridajte nasledujúce súkromné členských premenná Form1 triedy:
    private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    	+ " C:\\Program Files\\Microsoft Office\\Office10\\Samples\\"
    	+ "Northwind.mdb;";
    					
    Poznámka: Možno budete musieť upraviť cestu k databázu Northwind.mdb v reťazci pripojenia zodpovedali vašej inštalácie.
  6. Pridať nasledujúci kód do button1_Click obslužný program:
    //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);
             } 
    					
    Poznámka:Musíte zmeniť kód v Visual Studio 2005. V predvolenom nastavení Visual C# pridá jedna forma projektu pri vytváraní projektu formuláre systému Windows. Formulár je pomenovaný Form1. Dva súbory, ktoré predstavujú forme sú pomenované Form1.cs a Form1.designer.cs. Napíšete kód v Form1.cs. Súbor Form1.designer.cs je, ak Windows Forms Designer píše kód, ktorý vykoná všetky akcie ste vykonali pretiahnutím ovládacie prvky z panela s nástrojmi.

    Ďalšie informácie o Windows Forms Designer v Visual C# 2005, navštívte nasledujúce Microsoft Developer Network (MSDN) webovej lokality:
    http://msdn2.Microsoft.com/en-us/library/ms173077.aspx
  7. Stlačením klávesu F5 stavať a spustite program.
  8. Kliknite na položku Button1 Ak chcete vytvoriť súbor XML, potom zatvorte Form1 ukončiť program.
  9. Spustite program Excel 2002 alebo Excel 2003 a otvoriť výstupný súbor C:\Customers.xml.
  10. Po ktorú ste zistili, ako XML bol analyzovaný do riadkov a stĺpcov v novom zošite, zatvorte súbor a ukončite program Excel.

Formát XML pomocou šablóny so štýlmi

Tento krok vám ukáže, ako používať šablóny so štýlmi (XSL) na transformáciu ako údaje XML naformátované a usporiadané v zošite programu Excel.
  1. Použitia akýchkoľvek editor HTML alebo textového editora (napríklad Notepad.exe), uložiť nasledovné XSL ako 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. Odkomentujte nasledujúci riadok kódu v button1_Click obslužný program:
    xtw.WriteProcessingInstruction("xml-stylesheet", 
    	"type='text/xsl' href='customers.xsl'");
    					
    Tento riadok kódu píše Inštrukcia spracovania typu XML súbor, ktorý program Excel používa na vyhľadanie stylopis (Customers.xsl).

  3. Stlačením klávesu F5 stavať a spustite program.
  4. Kliknite na položku Button1 Ak chcete vytvoriť súbor XML, potom zatvorte Form1 ukončiť program.
  5. Spustite program Excel 2002 alebo Excel 2003 a otvoriť výstupný súbor C:\Customers.xml.
  6. Pretože Excel vidí inštrukcie na spracovanie na stylopis v súbore XML, zobrazí dialógové okno políčka výzva pri otvorení súboru. V Importujte vo formáte XML dialógové okno, vyberte Otvoriť súbor s nasledujúce štýlmi. V zozname, vyberte Customers.xsl a kliknite na tlačidlo ok. Všimnite si, že je formátované údaje XML a že stĺpce boli usporiadané podľa stylopis.
  7. Zatvorte súbor a ukončite program Excel.

Použitia kódu na otvorenie transformovaného súboru XML

Až do tohto bodu, ste otvorili súbor XML pomocou používateľského rozhrania v programe Excel. Tento oddiel demonštruje, ako automatizovať Excel otvorte zošit pomocou programovania. Tieto vzorky ilustruje spôsob na otvorenie transformovaného súboru XML bez zásahu používateľa v prvom transformácie XML v Množina údajov objekt do formátu HTML.
  1. Pridať odkaz na Program Microsoft Excel 10.0 Object Library alebo Objektová knižnica programu Microsoft Excel 11.0. Použite tento postup:
    1. Na Project ponuky, kliknite na tlačidlo Pridať odkaz.
    2. Na COM kartu, vyhľadajte Program Microsoft Excel 10.0 Object Library alebo Objektová knižnica programu Microsoft Excel 11.0 a kliknite na tlačidlo Vyberte.
    3. Kliknite na položku ok v Pridať odkazy dialógové okno akceptovať váš výber. Ak sa zobrazí výzva na generovanie medzivrstva pre knižnice, ktorý ste vybrali, kliknite na Yes.
  2. Doplní sa nasledujúce pomocou smerníc do hornej časti Form1.cs:
    using Excel = Microsoft.Office.Interop.Excel;
    					
  3. V Visual C# 2005 alebo Visual C#.ČISTÁ projektu, pridať iné tlačidlo na Form1.
  4. Dvakrát kliknite na Button2. Keď okno kód pre sa zobrazí formulár, pridajte nasledujúci kód do Button2_Click obslužný program:
    //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. Stlačením klávesu F5 stavať a spustite program.
  6. Kliknite na položku Button2 na otvorenie transformovaného súboru XML v programe Excel.
Poznámka: Zatiaľ čo Excel 2002 a objektového modelu Excel 2003 vystaviť OpenXML metóda, ktorá umožňuje programovo otvoríte súbor XML so štýlmi uplatňovať, predchádzajúce vzorky nevyžaduje táto metóda kvôli známy problém s použitím tejto metódy z automatizačných klientov. V OpenXML metóda funguje podľa očakávania, keď je volaný z programu Excel makra; Avšak, keď je metóda volaná z automatizačných klientov, StyleSheet parameter sa ignoruje.Ďalšie informácie získate kliknutím na nasledujúce číslo článku databázy Microsoft Knowledge Base:
307230 Chyba: Štýlmi Parameter metódy OpenXML ignorované, ak automatizácia Excel 2002

ODKAZY

Ďalšie informácie nájdete v nasledujúcich článkoch databázy Knowledge Base:
288215 INFO: Program Microsoft Excel 2002 a XML
302084 Ako na automatizáciu programu Microsoft Excel z Visual C#.NET
301216 Ako sa vyznačená DataSet objekt z databázy pomocou jazyka Visual Basic.NET
306023 Ako previesť údaje do zošita programu Excel pomocou Visual C#.NET

Vlastnosti

ID článku: 307029 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
Kľúčové slová: 
kbhowtomaster kbmt KB307029 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:307029

Odošlite odozvu

 

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