HOW TO: Dati di trasferimento XML a Microsoft Excel 2002 utilizzando Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 307021 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In Excel 2002 viene introdotta una funzionalità per l'apertura di file nel formato XML (Extensible Markup Language). Un file XML sia ben formato può essere aperto direttamente in Excel 2002 o Excel 2003 tramite l'interfaccia utente o il codice.

Con Visual Basic. NET, è possibile sfruttare Excel XML funzionalità per trasferire dati direttamente a una cartella di lavoro per presentare i dati con formattazione e la disposizione di propria scelta. In questo articolo viene illustrato come eseguire questa operazione.

Generazione di XML da un DataSet per l'utilizzo In Excel 2002 o Excel 2003

Questa sezione viene illustrato come creare un oggetto DataSet ed esportare i dati contenuti in un file XML utilizzando il metodo WriteXML . Il file XML che viene generato può essere aperto direttamente in Excel. A scopo illustrativo, l'oggetto DataSet viene creato dal database di esempio Northwind di Microsoft Access utilizzando il provider OLEDB di Jet. Un codice simile funzionerà tuttavia con qualsiasi oggetto DataSet creati con Visual Basic. NET.
  1. Avviare Microsoft Visual Studio .NET. Dal menu file , fare clic su Nuovo e quindi fare clic su progetto . Selezionare Applicazione Windows dai tipi di progetti di Visual Basic. In base all'impostazione predefinita, viene creato il progetto Form1.
  2. Nel menu Visualizza , selezionare la casella degli strumenti per visualizzare la casella degli strumenti e aggiungere un pulsante a Form1.
  3. Fare doppio clic su Button1 . Viene visualizzata la finestra del codice per il form.
  4. Aggiungere la seguente variabile di membro privata all'evento classe:
        Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb;"
    					
    Nota : potrebbe essere necessario modificare il percorso di Northwind.mdb nella stringa di connessione in modo che corrisponda l'installazione.

  5. Aggiungere il seguente codice al gestore Button1_Click :
            'Connect to the data source.
            Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
    
            Try
            objConn.Open()
    
            'Fill a dataset with records from the Customers table.
            Dim strSQL As String
            Dim objDataset As New DataSet()
            Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter()
            strSQL = "Select CustomerID, CompanyName, ContactName, " & _
                     "Country, Phone from Customers"
            objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _
                strSQL, objConn)
            objAdapter.Fill(objDataset)
    
            ' Create the FileStream to write with.
            Dim strFilename As String
            strFilename = "C:\Customers.xml"
            Dim fs As New System.IO.FileStream(strFilename, _
                System.IO.FileMode.Create)
    
            'Create an XmlTextWriter for the FileStream.
            Dim xtw As 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()
    
            MsgBox("Customer data has been exported to C:\Customers.xml.")
    
            Catch ex As Exception
                    MsgBox(ex.Message)
            End Try
    					
  6. Premere F5 per compilare ed eseguire il programma.
  7. Fare clic su Button1 per creare il file XML, quindi chiudere Form1 per terminare il programma.
  8. Avviare Excel 2002 o Excel 2003 e aprire il file di output c:\Customers.Xml.
  9. Dopo avere osservato come vengono analizzati i dati XML nelle righe e nelle colonne della nuova cartella di lavoro, chiudere il file e uscire da Excel.

Formattare il codice XML utilizzando un foglio di stile

In questo passaggio viene illustrato come utilizzare un foglio di stile (XSL) per trasformare la modalità di formattazione e disposizione dei dati XML in una cartella di lavoro di Excel.
  1. Utilizzando qualsiasi editor HTML o un editor di testo (ad esempio Notepad.exe), Salva il file XSL seguente 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. Il seguente di commento nel gestore Button1_Click :
            xtw.WriteProcessingInstruction( _
                "xml-stylesheet", "type='text/xsl' href='customers.xsl'")
    					
    questa riga di codice scritta un'istruzione di elaborazione nel file XML utilizzato da Excel per individuare il foglio di stile (Customers.xsl).

  3. Premere F5 per compilare ed eseguire il programma.
  4. Fare clic su Button1 per creare il file XML, quindi chiudere Form1 per terminare il programma.
  5. Avviare Excel 2002 o Excel 2003 e aprire il file di output c:\Customers.Xml.
  6. Poiché l'istruzione di elaborazione per il foglio di stile contenuta nel codice XML viene rilevata da Excel, all'apertura del file verrà visualizzata una finestra di dialogo. Selezionare Apri il file con il seguente foglio di stile applica nella finestra di dialogo Importa XML . Nell'elenco, selezionare Customers.xsl e fare clic su OK . I dati XML vengono formattati e le colonne disposte secondo il foglio di stile.
  7. Chiudere il file e uscire da Excel.

Utilizzo di codice per aprire l'XML trasformato

Fino a questo punto il file XML è stato aperto tramite l'interfaccia utente di Excel. In questa sezione viene descritto come automatizzare Excel per l'apertura della cartella di lavoro a livello di programmazione. Nell'esempio riportato di seguito viene illustrato come aprire il XML trasformato senza intervento da parte dell'utente, trasformando prima il XML nell'oggetto DataSet in formato HTML.
  1. Nel progetto di Visual Basic. NET, è possibile aggiungere un altro pulsante a Form1.
  2. Fare doppio clic su Button2 . Quando la finestra del codice per il modulo viene visualizzata, aggiungere il seguente codice al gestore Button2_Click :
            'Connect to the data source.
            Dim objConn As New System.Data.OleDb.OleDbConnection(strConn)
            objConn.Open()
    
            'Fill a dataset with records from the Customers table.
            Dim strSQL As String
            Dim objDataset As New DataSet()
            Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter()
            strSQL = "Select CustomerID, CompanyName, ContactName, " & _
                     "Country, Phone from Customers"
            objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand( _
                strSQL, objConn)
            objAdapter.Fill(objDataset)
    
            ' Create the FileStream to write with.
            Dim strFilename As String
            strFilename = "C:\Customers.htm"
            Dim fs As New System.IO.FileStream(strFilename, _
                System.IO.FileMode.Create)
    
            'Create an XmlTextWriter for the FileStream.
            Dim xtw As New System.Xml.XmlTextWriter(fs, _
                System.Text.Encoding.Unicode)
    
            'Transform the XML using the stylesheet.
            Dim xmlDoc As System.Xml.XmlDataDocument = _
                New System.Xml.XmlDataDocument(objDataset)
            Dim xslTran As System.Xml.xsl.XslTransform = _
                New System.Xml.Xsl.XslTransform()
            xslTran.Load("c:\customers.xsl")
            xslTran.Transform(xmlDoc, Nothing, xtw)
    
            'Write the transformed XML to the file.
            objDataset.WriteXml(xtw)
            xtw.Close()
    
            'Start Excel and open the resulting file.
            Dim oExcel As Object
            oExcel = CreateObject("Excel.Application")
            oExcel.Workbooks.Open("C:\Customers.htm")
    
            'Make Excel visible and give the user control of the application.
            oExcel.Visible = True
            oExcel.UserControl = True
    					
  3. Premere F5 per compilare ed eseguire il programma.
  4. Fare clic su Button2 per aprire il XML trasformato in Microsoft Excel.
Nota : mentre i Excel 2002 e di un Excel 2003 Object Model espongono un metodo OpenXML che consente di aprire a livello di programmazione un file XML con fogli di stile applicato, nell'esempio precedente non chiamato questo metodo a causa di un problema noto con utilizza questo metodo da un client di automazione. Il metodo OpenXML funziona come previsto quando viene chiamato da una macro di Excel; tuttavia, quando questo metodo è chiamato da un client di automazione, il parametro StyleSheet verrà ignorato. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
307230BUG: Il parametro StyleSheets del metodo OpenXML ignorati durante l'automazione Excel 2002

Riferimenti

Per ulteriori informazioni, vedere articoli Knowledge Base riportato di seguito:
288215INFORMAZIONI: Microsoft Excel 2002 e XML
301982HOWTO: Automatizzare Microsoft Excel da Visual Basic .NET
306022HOW TO: Trasferimento di dati a una cartella di lavoro Excel utilizzando Visual Basic .NET
285891HOWTO: Utilizzare di Visual Basic o ASP per creare un foglio di calcolo XML per Excel 2002
320369BUG: "Old Format o libreria di tipo non valido" Errore durante l'automazione di Excel 2002

Proprietà

Identificativo articolo: 307021 - Ultima modifica: venerdì 12 dicembre 2003 - Revisione: 6.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft Excel 2002 Standard Edition
Chiavi: 
kbmt kbhowtomaster KB307021 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 307021
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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