本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

WorkbookBase.XmlImportXml 方法 (String, XmlMap, Object, Object)

 

匯入先前已載入記憶體的 XML 資料流。

命名空間:   Microsoft.Office.Tools.Excel
組件:  Microsoft.Office.Tools.Excel.v4.0.Utilities (在 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 中)

public XlXmlImportResult XmlImportXml(
	string data,
	out XmlMap importMap,
	object overwrite,
	object destination
)

參數

data

要匯入的資料。

importMap

匯入檔案時套用的結構描述對應。

overwrite

如果未指定 Destination 參數的值,則此參數指出是否覆寫已對應至 ImportMap 參數指定的結構描述對應之資料。  設定為 true 表示要覆寫資料,設定為 false 表示要將新資料附加至現有資料中。  預設值是 true  如果已指定 Destination 參數的值,此參數會指出是否覆寫現有資料。  設定為 true 表示要覆寫現有資料,如果資料可能會被覆寫,則設定為 false 以取消匯入。  預設值是 true  

destination

資料會匯入 Range 指定的新 XML 清單。

如果您要將資料匯入現有的對應,請勿指定 Destination 參數值。

下列情況會導致這個方法產生執行階段錯誤:

  • 指定的 XML 資料內含語法錯誤。

  • 取消匯入程序,因為指定的資料在工作表中無法適用。

使用 XmlImport 方法,將 XML 資料檔匯入目前活頁簿。

如需選擇性參數的詳細資訊,請參閱Office 方案中的選擇性參數

下列程式碼範例示範如何將 XML 資料匯入活頁簿。  此範例建立含有客戶名稱的 DataSet,並根據 DataSet 的 XML 結構描述,將 XmlMap 加入至目前活頁簿的 XmlMaps 集合。  然後此範例會呼叫 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.");
    }
}
回到頁首
顯示: