Jak přenést XML data do aplikace Microsoft Excel 2002 nebo Microsoft Excel 2003 pomocí Visual C#

Překlady článku Překlady článku
ID článku: 307029 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual Basic .NET verzi tohoto článku naleznete 307021.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Excel 2002 zavádí funkčnost pro otevírání souborů ve formátu XML (Extensible Markup Language). Soubor XML, který je ve správném otevřít přímo v aplikaci Excel 2002 nebo Excel 2003 pomocí uživatelského rozhraní nebo kódu.

S Microsoft Visual C# 2005 nebo Microsoft Visual C# .NET můžete využít výhod funkcí XML aplikace Excel bezproblémově přenést data do sešitu prezentovat data s formátováním a uspořádání podle vašeho výběru. Tento článek ukazuje, jak provést tento úkol.

Generovat XML z DataSet pro použití v aplikaci Excel 2002 nebo Excel 2003

Tento oddíl ilustruje, jak vytvořit objekt DataSet a exportovat data, která obsahuje soubor XML pomocí metody WriteXML. Soubor XML, který je generován lze otevřít přímo v aplikaci Excel. Pro účely obrázku objekt DataSet vytvořili z ukázkové databáze Microsoft Access Northwind pomocí Jet OLEDB Provider. Podobné kód však funguje s libovolný objekt DataSet, který vytvoříte pomocí Visual C# 2005 nebo Visual C# .NET.
  1. Spustit Microsoft Visual Studio 2005 nebo Microsoft Visual Studio .NET. V nabídce soubor klepněte na příkaz Nový a klepněte na příkaz projekt. Vyberte typy Visual C# projekty Aplikace Windows. Jako výchozí je vytvořen formulář Form1.
  2. V nabídce Zobrazit vyberte panel zobrazení panelu a přidání tlačítka Form1.
  3. Poklepejte na Button1. Zobrazí se okno s kódem pro formulář.
  4. Přidat následující direktivy pomocí horní Form1.cs:
    using System.Data.OleDb;
    using System.Xml;
    					
  5. Přidat následující soukromé členské proměnné třídy Form1:
    private string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    	+ " C:\\Program Files\\Microsoft Office\\Office10\\Samples\\"
    	+ "Northwind.mdb;";
    					
    Poznámka pravděpodobně nutné změnit cestu k Northwind.mdb v řetězci připojení odpovídají instalace.
  6. Přidejte následující kód popisovač button1_Click: //Connect
    //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 je třeba změnit kód v aplikaci Visual Studio 2005. Ve výchozím nastavení Visual C# přidá jeden formulář projektu při vytvoření projektu model Windows Forms. Formulář je pojmenován Form1. Dva soubory, které představují formuláře jsou pojmenovány Form1.cs a Form1.designer.cs. Zapisovat kód v Form1.cs. Kde Návrhář model Windows Forms zapíše kód, který implementuje všechny akce provedena přetažením ovládací prvky z panelu je soubor Form1.designer.cs.

    Další informace o model Windows Forms Designer v Visual C# 2005, navštivte následující Microsoft Developer Network (MSDN) webu:
    http://msdn2.microsoft.com/en-us/library/ms173077.aspx
  7. Stisknutím klávesy F5 sestavit a spustit program.
  8. Klepněte na tlačítko Button1 vytvořit soubor XML a potom zavřete Form1 program ukončit.
  9. Spusťte aplikaci Excel 2002 nebo Excel 2003 a otevřít výstupní soubor C:\Customers.xml.
  10. Po pozorované jak XML má byl analyzován do řádků a sloupců nový sešit zavřete soubor a ukončete aplikaci Excel.

Formát XML Stylesheet použití

Tento krok ukazuje, jak použít šablony stylů (XSL) pro transformaci jak formátován a uspořádány v sešitu aplikace Excel XML data.
  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. Vložte následující řádek kódu v obsluze button1_Click:
    xtw.WriteProcessingInstruction("xml-stylesheet", 
    	"type='text/xsl' href='customers.xsl'");
    					
    tento řádek kódu zapíše instrukce pro zpracování souboru XML Excel používá k vyhledání šablony stylů (Customers.xsl).

  3. Stisknutím klávesy F5 sestavit a spustit program.
  4. Klepněte na tlačítko Button1 vytvořit soubor XML a potom zavřete Form1 program ukončit.
  5. Spusťte aplikaci Excel 2002 nebo Excel 2003 a otevřít výstupní soubor C:\Customers.xml.
  6. Protože Excel vidí instrukce pro zpracování pro šablony stylů v souboru XML, zobrazí se výzva pole dialogové okno při otevření souboru. V dialogovém okně Importovat XML vyberte Otevřít soubor s následující šablona stylů použita. V seznamu vyberte Customers.xsl a klepněte na tlačítko OK. Poznámka: formátování dat XML a sloupce mají byly uspořádány podle šablony stylů.
  7. Zavřete soubor a ukončete aplikaci Excel.

Použít kód otevření transformovaný XML

Do tohoto okamžiku jste otevřeli soubor XML pomocí uživatelského rozhraní v aplikaci Excel. Tento oddíl demonstruje automatizovat Excel otevřete sešit programově. Následující ukázka znázorňuje způsob otevření transformovaný XML bez zásahu uživatele podle transformace XML v objektu DataSet na HTML.
  1. Přidat odkaz na 10.0 objektové knihovny Microsoft Excel nebo Microsoft Excel 11.0 Object Library. Postupujte takto:
    1. V nabídce projekt klepněte na tlačítko Přidat odkaz.
    2. Na kartě COM vyhledejte 10.0 objektové knihovny Microsoft Excel nebo Microsoft Excel 11.0 Object Library a klepněte na tlačítko Vybrat.
    3. Klepnutím na tlačítko OK v dialogovém okně Přidat odkazy potvrďte výběr. Pokud se zobrazí výzva ke generování obálky pro knihovnu, které jste vybrali, klepněte na tlačítko Ano.
  2. Přidat následující direktivy pomocí horní Form1.cs:
    using Excel = Microsoft.Office.Interop.Excel;
    					
  3. V projektu Visual C# .NET nebo Visual C# 2005 přidat jiné tlačítko Form1.
  4. Poklepejte na Button2. Když okno kód pro formuláře se zobrazí, přidejte následující kód obsluze Button2_Click: //Connect
    //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. Stisknutím klávesy F5 sestavit a spustit program.
  6. Klepněte na tlačítko Button2 transformovaný XML v aplikaci Excel otevřít.
Poznámka: Zatímco aplikace Excel 2002 a Excel 2003 objektový model vystavit OpenXML metodu, která umožňuje programově otevřete soubor XML s použita předlohy se styly, předchozí ukázkový nevyvolá Tato metoda kvůli známý problém s pomocí této metody z klienta automatizace. Metoda OpenXML funguje očekávaným způsobem při volání z maker aplikace Excel; však při Tato metoda je volána z klienta automatizace, šablony stylů parametr je ignorován. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
307230Chyba: Předlohy se styly parametr metoda OpenXML ignorované při automatizaci aplikace Excel 2002

Odkazy

Další informace naleznete v následujících článcích znalostní báze Knowledge Base:
288215INFORMACE: Aplikace Microsoft Excel 2002 a XML
302084Jak automatizovat uzavřený z Visual C# .NET
301216Jak vyplnění objektu DataSet z databáze pomocí jazyka .NET
306023Jak přenos dat do sešitu aplikace Excel pomocí Visual C# .NET

Vlastnosti

ID článku: 307029 - Poslední aktualizace: 11. prosince 2006 - Revize: 7.5
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbhowtomaster KB307029 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:307029

Dejte nám zpětnou vazbu

 

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