다음을 통해 공유


WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) 메서드

정의

메모리에 이미 로드된 XML 데이터 스트림을 가져옵니다.

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

매개 변수

data
String

가져올 데이터입니다.

importMap
XmlMap

파일을 가져올 때 적용할 스키마 맵입니다.

overwrite
Object

매개 변수에 대해 Destination 값을 지정하지 않으면 이 매개 변수는 매개 변수에 지정된 ImportMap 스키마 맵에 매핑된 데이터를 덮어쓸지 여부를 지정합니다. 데이터를 덮어쓰려면 true로 설정하고, 기존 데이터에 새 데이터를 추가하려면 false로 설정합니다. 기본값은 true입니다. 매개 변수에 값 Destination 이 지정된 경우 이 매개 변수는 기존 데이터를 덮어쓸지 여부를 지정합니다. 기존 데이터를 덮어쓰려면 true로 설정하고, 데이터를 덮어쓰게 될 경우 가져오기를 취소하려면 false로 설정합니다. 기본값은 true입니다.

destination
Object

데이터를 새 XML 목록의 지정된 Range로 가져옵니다.

반환

XlXmlImportResult 값 중 하나입니다.

예제

다음 코드 예제에서는 XML 데이터를 통합 문서로 가져오는 방법을 보여 줍니다. 이 예제에서는 고객 이름의 를 DataSet 만들고 에 대한 DataSet XML 스키마를 기반으로 을 현재 통합 문서의 컬렉션에 XmlMaps 추가 XmlMap 합니다. 그런 다음, 메서드를 XmlImportXml 호출하여 데이터를 워크시트로 Sheet1가져옵니다. 메서드가 XmlImportXml 호출 BeforeXmlImport 되면 이벤트 처리기는 사용자에게 XML 가져오기를 진행하거나 취소하라는 메시지를 표시하고 AfterXmlImport 이벤트 처리기는 XML을 성공적으로 가져왔는지 여부를 보고합니다.

이 예제는 문서 수준 사용자 지정을 위한 것입니다.

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

설명

기존 매핑으로 데이터를 가져오려는 경우 매개 변수의 값을 Destination 지정하지 마세요.

다음 조건에서는 이 메서드가 런타임 오류를 생성합니다.

  • 지정된 XML 데이터에 구문 오류가 포함됩니다.

  • 지정한 데이터가 워크시트에 맞지 않아 가져오기 프로세스가 취소되었습니다.

메서드를 XmlImport 사용하여 XML 데이터 파일을 현재 통합 문서로 가져옵니다.

선택적 매개 변수

선택적 매개 변수에 대한 자세한 내용은 Office 솔루션의 선택적 매개 변수를 참조하세요.

적용 대상