Partager via


WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) Méthode

Définition

Importe un flux de données XML précédemment chargé dans la mémoire.

public Microsoft.Office.Interop.Excel.XlXmlImportResult XmlImportXml (string data, out Microsoft.Office.Interop.Excel.XmlMap importMap, object overwrite, object destination);
member this.XmlImportXml : string * XmlMap * obj * obj -> Microsoft.Office.Interop.Excel.XlXmlImportResult
Public Function XmlImportXml (data As String, ByRef importMap As XmlMap, Optional overwrite As Object, Optional destination As Object) As XlXmlImportResult

Paramètres

data
String

Données à importer.

importMap
XmlMap

Mappage de schéma à appliquer lors de l'importation du fichier.

overwrite
Object

Si aucune valeur n’est spécifiée pour le Destination paramètre, ce paramètre spécifie s’il faut remplacer ou non les données qui ont été mappées au mappage de schéma spécifié dans le ImportMap paramètre . Affectez la valeur true pour remplacer les données ou false pour ajouter les nouvelles données aux données existantes. La valeur par défaut est true. Si une valeur est spécifiée pour le Destination paramètre, ce paramètre spécifie s’il faut remplacer ou non les données existantes. Affectez la valeur true pour remplacer les données existantes ou false pour annuler l'importation si les données étaient remplacées. La valeur par défaut est true.

destination
Object

Les données seront importées dans une nouvelle liste XML du Range spécifié.

Retours

Une des valeurs de l'objet XlXmlImportResult.

Exemples

L’exemple de code suivant montre comment importer des données XML dans un classeur. L’exemple crée un DataSet de noms de clients et ajoute un XmlMap basé sur le schéma XML pour à DataSet la XmlMaps collection du classeur actuel. L’exemple appelle ensuite la XmlImportXml méthode pour importer les données dans la feuille de calcul Sheet1. Lorsque la XmlImportXml méthode est appelée, le BeforeXmlImport gestionnaire d’événements invite l’utilisateur à poursuivre ou à annuler l’importation du code XML, et le AfterXmlImport gestionnaire d’événements indique si le code XML a été importé avec succès.

Cet exemple concerne une personnalisation au niveau du document.

private void WorkbookXmlImportEvents()
{
    this.BeforeXmlImport +=
        new Excel.WorkbookEvents_BeforeXmlImportEventHandler(
        ThisWorkbook_BeforeXmlImport);

    this.AfterXmlImport += new
        Excel.WorkbookEvents_AfterXmlImportEventHandler(
        ThisWorkbook_AfterXmlImport);

    // Create a new DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    dt.Columns.Add(new DataColumn("LastName"));
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add a new row to the DataTable.
    DataRow dr = dt.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";
    dt.Rows.Add(dr);

    // Add a new XML map to the collection.
    Excel.XmlMap xmlMap1 = this.XmlMaps.Add(ds.GetXmlSchema(),
        "NewDataSet");

    // Import the data stream if the XmlMap was successfully created.
    if (xmlMap1 != null)
    {
        // This will raise the BeforeXmlImport and AfterXmlImport events.
        Excel.Range range1 = Globals.Sheet1.Range["A1"];
        this.XmlImportXml(ds.GetXml(), out xmlMap1, true,
            range1);
    }
    else
    {
        MessageBox.Show("The XmlMap could not be created");
    }
}

void ThisWorkbook_BeforeXmlImport(Excel.XmlMap Map,
    string Url, bool IsRefresh, ref bool Cancel)
{
    if (DialogResult.No == MessageBox.Show("Microsoft Excel is about" +
        " to import XML into the workbook. Continue with importing?",
        "Custom XML Import Dialog", MessageBoxButtons.YesNo))
    {
        Cancel = true;
    }
}

void ThisWorkbook_AfterXmlImport(Excel.XmlMap Map, bool IsRefresh,
    Excel.XlXmlImportResult Result)
{
    if (Result == Excel.XlXmlImportResult.xlXmlImportSuccess)
    {
        MessageBox.Show("XML import succeeded.");
    }
    else
    {
        MessageBox.Show("XML import failed.");
    }
}
Private Sub WorkbookXmlImportEvents()

    ' Create a new DataTable.
    Dim ds As New DataSet()
    Dim dt As DataTable = ds.Tables.Add("Customers")
    dt.Columns.Add(New DataColumn("LastName"))
    dt.Columns.Add(New DataColumn("FirstName"))

    ' Add a new row to the DataTable.
    Dim dr As DataRow = dt.NewRow()
    dr("LastName") = "Chan"
    dr("FirstName") = "Gareth"
    dt.Rows.Add(dr)

    ' Add a new XML map to the collection.
    Dim xmlMap1 As Excel.XmlMap = Me.XmlMaps.Add(ds.GetXmlSchema(), _
        "NewDataSet")

    ' Import the data stream if the XmlMap was successfully created.
    If Not (xmlMap1 Is Nothing) Then

        ' This will raise the BeforeXmlImport and AfterXmlImport events.
        Dim range1 As Excel.Range = Globals.Sheet1.Range("A1")
        Me.XmlImportXml(ds.GetXml(), xmlMap1, True, _
            range1)
    Else
        MsgBox("The XmlMap could not be created")
    End If
End Sub

Sub ThisWorkbook_BeforeXmlImport(ByVal Map As Excel.XmlMap, _
    ByVal Url As String, ByVal IsRefresh As Boolean, _
    ByRef Cancel As Boolean) Handles Me.BeforeXmlImport

    If DialogResult.No = MessageBox.Show("Microsoft Excel is about" & _
        " to import XML into the workbook. Continue with importing?", _
        "Custom XML Import Dialog", MessageBoxButtons.YesNo) Then
        Cancel = True
    End If
End Sub

Sub ThisWorkbook_AfterXmlImport(ByVal Map As Excel.XmlMap, _
    ByVal IsRefresh As Boolean, ByVal Result As Excel.XlXmlImportResult) _
    Handles Me.AfterXmlImport

    If Result = Excel.XlXmlImportResult.xlXmlImportSuccess Then
        MsgBox("XML import succeeded.")
    Else
        MsgBox("XML import failed.")
    End If
End Sub

Remarques

Ne spécifiez pas de valeur pour le Destination paramètre si vous souhaitez importer des données dans un mappage existant.

Les conditions suivantes entraînent la génération d’erreurs d’exécution par cette méthode :

  • Les données XML spécifiées contiennent des erreurs de syntaxe.

  • Le processus d’importation a été annulé, car les données spécifiées ne peuvent pas tenir dans la feuille de calcul.

Utilisez la XmlImport méthode pour importer un fichier de données XML dans le classeur actif.

Paramètres facultatifs

Pour plus d’informations sur les paramètres facultatifs, consultez Paramètres facultatifs dans les solutions Office.

S’applique à