다음을 통해 공유


WorkbookBase.XmlImportXml 메서드

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

네임스페이스:  Microsoft.Office.Tools.Excel
어셈블리:  Microsoft.Office.Tools.Excel.v4.0.Utilities(Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

구문

‘선언
Public Function XmlImportXml ( _
    data As String, _
    <OutAttribute> ByRef importMap As XmlMap, _
    overwrite As Object, _
    destination As Object _
) As XlXmlImportResult
public XlXmlImportResult XmlImportXml(
    string data,
    out XmlMap importMap,
    Object overwrite,
    Object destination
)

매개 변수

  • overwrite
    형식: System.Object
    Destination 매개 변수에 대한 값이 지정되어 있지 않으면 이 매개 변수는 ImportMap 매개 변수로 지정된 스키마 맵에 매핑되어 있는 데이터를 덮어쓸지 여부를 지정합니다.데이터를 덮어쓰려면 true로 설정하고, 기존 데이터에 새 데이터를 추가하려면 false로 설정합니다.기본값은 true입니다.Destination 매개 변수에 대한 값이 지정되어 있으면 이 매개 변수에 따라 기존 데이터를 덮어쓸지 여부가 결정됩니다.기존 데이터를 덮어쓰려면 true로 설정하고, 데이터를 덮어쓰게 될 경우 가져오기를 취소하려면 false로 설정합니다.기본값은 true입니다.
  • destination
    형식: System.Object
    데이터를 새 XML 목록의 지정된 Range로 가져옵니다.

반환 값

형식: Microsoft.Office.Interop.Excel.XlXmlImportResult
XlXmlImportResult 값 중 하나입니다.

설명

데이터를 기존 매핑으로 가져오려면 Destination 매개 변수의 값을 지정하지 마십시오.

이 메서드는 다음과 같은 경우 런타임 오류를 생성합니다.

  • 지정된 XML 데이터에 구문 오류가 있는 경우

  • 지정한 데이터가 워크시트 크기에 맞지 않아서 가져오기 프로세스가 취소된 경우

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

선택적 매개 변수

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

예제

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

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

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
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", missing];
        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.");
    }
}

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

WorkbookBase 클래스

Microsoft.Office.Tools.Excel 네임스페이스