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
)
パラメーター
- data
型 : System.String
インポートするデータです。
- importMap
型 : Microsoft.Office.Interop.Excel.XmlMap%
ファイルをインポートするときに適用するスキーマ マップです。
- overwrite
型 : System.Object
Destination パラメーターに値が設定されていない場合、このパラメーターは、ImportMap パラメーターで指定されたスキーマ マップにマップされたデータを上書きするかどうかを指定します。 true に設定するとデータを上書きし、false に設定すると新しいデータを既存のデータに追加します。既定値は true です。 Destination パラメーターに値が指定されている場合、このパラメーターは既存のデータを上書きするかどうかを指定します。 true に設定すると既存のデータを上書きし、false に設定すると、インポートをキャンセルしてデータが上書きされないようにします。既定値は true です。
- destination
型 : System.Object
指定されている Range にある新しい XML リストにデータがインポートされます。
戻り値
型 : 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"];
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 セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。