WorkbookBase.XmlImportXml(String, XmlMap, Object, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Importa um fluxo de dados XML anteriormente carregado na memória.
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
Parâmetros
- data
- String
Os dados a serem importados.
- importMap
- XmlMap
O mapa de esquema a ser aplicado durante a importação do arquivo.
- overwrite
- Object
Se um valor não for especificado para o Destination
parâmetro , esse parâmetro especificará se os dados que foram mapeados para o mapa de esquema especificado no ImportMap
parâmetro serão substituídos ou não. Defina como true
para substituir os dados ou false
para anexar os novos dados aos dados existentes. O valor padrão é true
. Se um valor for especificado para o Destination
parâmetro , esse parâmetro especificará se os dados existentes devem ou não ser substituídos. Defina como true
para substituir dados existentes ou false
para cancelar a importação caso os dados precisem ser substituídos. O valor padrão é true
.
Retornos
Um dos valores de XlXmlImportResult.
Exemplos
O exemplo de código a seguir demonstra como importar dados XML para uma pasta de trabalho. O exemplo cria um DataSet de nomes de cliente e adiciona um XmlMap com base no esquema XML para o DataSet à coleção XmlMaps da pasta de trabalho atual. Em seguida, o exemplo chama o método XmlImportXml para importar os dados na planilha Sheet1
. Quando o XmlImportXml método é chamado, o BeforeXmlImport manipulador de eventos solicita que o usuário continue ou cancele a importação do XML, e o AfterXmlImport manipulador de eventos relata se o XML foi importado com êxito.
Este exemplo destina-se a uma personalização no nível de documento.
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
Comentários
Não especifique um valor para o parâmetro Destination
caso você queira importar dados para um mapeamento existente.
As seguintes condições farão esse método gerar erros de tempo de execução:
Os dados XML especificados contêm erros de sintaxe.
O processo de importação foi cancelado porque os dados especificados não podem caber na planilha.
Use o XmlImport método para importar um arquivo de dados XML para a pasta de trabalho atual.
Parâmetros Opcionais
Para obter informações sobre parâmetros opcionais, consulte Parâmetros opcionais em soluções do Office.