You are on page 1of 5

18/04/13

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro de Excel con Visual Basic .net

Seleccione el producto para el cual necesita ayuda

Buscar soluciones
Preguntar en los foros

Windows

Obtener ayuda ahora

Internet
Explorer

Office

Surface

Media Player

Skype

Windows
Phone

Ms productos

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro


de Excel con Visual Basic .NET
Original

How To Use ADO.NET to Retrieve and Modify Records in an Excel Workbook With Visual Basic .NET
Mejorar la traduccin

Id. de artculo: 316934 - Ver los productos a los que se aplica este artculo

Advertencia: Artculo de Traduccin Automtica, vea la exencin de responsabilidad.


Haga clic aqu para ver en paralelo el artculo de traduccin automtica y el artculo original en ingls.

Resumen
Este artculo describe cmo puede utilizar ADO.NET para recuperar datos de un libro de Microsoft Excel, modificar los datos de un libro existente o agregar
datos a un libro nuevo. Para tener acceso a libros de Excel con ADO.NET, puede utilizar el proveedor OLE DB de Jet; en este artculo se proporciona la
informacin que necesitan para que pueda utilizar el proveedor OLE DB de Jet cuando Excel es el origen de datos de destino.

Cmo utilizar el proveedor OLE DB de Jet con libros de Microsoft Excel


El motor de base de datos Microsoft Jet puede tener acceso a datos en otros formatos de archivo de base de datos, tales como libros de Excel, a travs de
los controladores instalables de mtodo de acceso secuencial indizado (ISAM). Para abrir formatos externos admitidos por el proveedor OLE DB de
Microsoft Jet 4.0, especifique el tipo de base de datos en las propiedades extendidas para la conexin. El proveedor OLE DB de Jet admite los siguientes
tipos de base de datos de libros de Microsoft Excel:
Excel 3.0
Excel 4.0
Excel 5.0
Excel 8.0
Nota: utilice el tipo de base de datos de origen de Excel 5.0 para libros de Microsoft Excel 5.0 y 7.0 (95) y el tipo de base de datos de origen de Excel 8.0
para Microsoft Excel 8.0 (97), 9.0 (2000) y 10.0 libros (2002). Los ejemplos de este artculo utilizan libros de Excel en el formato de Excel 2000 y Excel 2002.

Cadena de conexin
Para tener acceso a un libro de Excel utilizando el proveedor OLE DB de Jet, utilice una cadena de conexin que tiene la siguiente sintaxis:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Propiedades extendidas = "Excel 8.0;HDR = YES; "
En la cadena de conexin, especifique la ruta de acceso y el nombre completo para el libro en el parmetro de Origen de datos . El parmetro Propiedades
extendidas puede contener dos propiedades: una propiedad de la versin ISAM y una propiedad para indicar o no la tabla o tablas incluyen encabezados.
Con los libros de Excel, la primera fila de un rango es la fila de encabezado (o nombres de campo) de forma predeterminada. Si el primer rango no
contiene encabezados, puede especificar HDR = NO en las propiedades extendidas en la cadena de conexin. Si especifica HDR = NO en la cadena de
conexin, el proveedor OLE DB de Jet automticamente nombra los campos para usted (F1 representa el primer campo, F2 representa el segundo campo
etc.).

Tipos de datos
A diferencia de una base de datos tradicional, no hay ninguna forma directa para especificar los tipos de datos para las columnas en tablas de Excel. En su
lugar, el proveedor OLE DB explora ocho filas de una columna para estimar el tipo de datos para el campo. Puede cambiar el nmero de filas que desea
escanear, especificando un valor entre uno (1) y diecisis (16) para el valor de MAXSCANROWS en las propiedades extendidas de la cadena de conexin.

Convenciones de nomenclatura de la tabla


Hay varias formas, puede hacer referencia a una tabla (o rango) en un libro de Excel:
Utilice el nombre de la hoja seguido por un signo de dlar (por ejemplo, [Hoja1$] o [mi hoja de clculo$]). Una tabla de libro que se hace referencia
de esta manera incluye el rango utilizado todo de la hoja de clculo.
Select * from [Sheet1$]
Utilice un rango con un nombre definido (por ejemplo, [MyNamedRange]):
select * from [MyNamedRange]

support.microsoft.com/kb/316934/es

1/5

18/04/13

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro de Excel con Visual Basic .net
Utilice un rango con una direccin especfica (por ejemplo, [Hoja1$ A1: B10]):
select * from [Sheet1$ A1:B10]

Nota: el signo de dlar despus del nombre de la hoja de clculo es una indicacin de que existe en la tabla. Si va a crear una nueva tabla, como se
describe en la seccin crear nuevos libros y las tablas de este artculo, no utilice el signo de dlar.

Cmo utilizar los libros de Excel como fuentes de datos de ADO.NET


Recuperar registros
Puede recuperar los registros de una base de datos utilizando uno de estos dos enfoques de ADO.NET: con un Dataset o con un DataReader.
Un conjunto de datos es una memoria cach de los registros recuperados de un origen de datos. Los datos en el conjunto de datos suelen ser de una
versin mucho ms reducida de lo que hay en la base de datos. Sin embargo, puede trabajar con l en la misma forma que funcionen con los datos reales y
estar desconectado de la base de datos real. Adems de recuperacin de datos, tambin puede utilizar un Dataset para realizar operaciones de
actualizacin en la base de datos subyacente.
Como alternativa, puede utilizar un DataReader para recuperar una secuencia de slo avance de slo lectura de datos de una base de datos. Cuando utilice
el programa de DataReader , un aumento del rendimiento y es la sobrecarga del sistema disminuye porque slo una fila a la vez est siempre en la
memoria. Si tiene una gran cantidad de datos que desea recuperar y no va a realizar cambios en la base de datos subyacente, un DataReader es una
opcin mejor que un Dataset.

Agregar y actualizar registros


Con ADO.NET, puede insertar y actualizar registros en un libro en uno de tres maneras:
Ejecutar directamente un comando para insertar o actualizar registros de uno en uno. Para ello, puede crear un objeto OLEDbCommand en su
conexin y establecer su propiedad CommandText en un comando vlido para insertar registros
INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
o un comando para actualizar registros
UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
y, a continuacin, llame al mtodo ExecuteNonQuery . .
Realizar cambios en un conjunto de datos que ha rellenado con una tabla o consulta de un libro de Excel y, a continuacin, llame al mtodo Update
del DataAdapter para resolver los cambios del conjunto de datos al libro. Sin embargo, para utilizar el mtodo de actualizacin para el cambio de
resolucin que debe establecer comandos parametrizados para de DataAdapter InsertCommand
INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
y UpdateCommand:
UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
Se precisan los comandos parametrizado INSERT y UPDATE porque OleDbDataAdapter no proporciona informacin clave o ndice para libros de
Excel; sin campos de clave o ndice, CommandBuilder no puede generar los comandos automticamente.
De la exportacin de datos de otros origen de datos en un libro de Excel siempre que el otro origen de datos puede utilizarse con el proveedor OLE
DB de Jet. Orgenes de datos que puede utilizar con el proveedor OLE DB de Jet de esta manera incluyen archivos de texto, bases de datos de
Microsoft Access y, por supuesto, otros libros de Excel. Con un solo comando INSERT INTO, puede exportar datos de otra tabla o consulta en el
libro:
INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"
INSERT INTO requiere que la tabla de destino (o la hoja de clculo) ya existe; datos se anexan a la tabla de destino.
Tambin puede utilizar SELECT...INTO para exportar la tabla o consulta a un libro:
SELECT * INTO [Excel 8.0;Database=C:\Book1.xls].[Sheet1] FROM [MyTable]
Cuando se usa SELECT...EN, si la tabla de destino o el libro no existe, se crear para usted. Si la tabla ya existe antes de la seleccin...EN se emite el
comando, se producir un error.
La seccin de Cdigo de ejemplo ms adelante en este artculo ilustra cada uno de estos mtodos para agregar y actualizar registros en un libro.

Eliminar registros
Aunque el proveedor OLE DB de Jet permite insertar y actualizar registros en un libro de Excel, no permite las operaciones de eliminacin. Si se intenta
realizar una operacin de eliminacin de uno o ms registros, recibir el mensaje de error siguiente:

support.microsoft.com/kb/316934/es

2/5

18/04/13

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro de Excel con Visual Basic .net
Este ISAM no admite la eliminacin de datos en una tabla vinculada.

Esta limitacin es inherente en el tratamiento de los libros de Excel como bases de datos.

Crear tablas y libros


Para crear una tabla en un libro de Excel, ejecute el comando CREATE TABLE:
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
Al ejecutar este comando, se crea una nueva hoja de clculo con el nombre de la tabla que se especifique en el comando. Si el libro para la conexin no
existe, se tambin se crear.
La seccin Ejemplo de cdigo muestra cmo puede utilizar el comando CREATE TABLE para crear un nuevo libro y una tabla.

Paso a paso
Cdigo de ejemplo
1. Inicie un nuevo proyecto de Aplicacin para Windows de Visual Basic .NET. .

2.
3.
4.
5.

De forma predeterminada, se crea Form1 . .


Agregue seis controles RadioButton y un control Button a Form1.
Seleccione todos los controles RadioButton y establezca la propiedad Size en 200,24.
En el men Ver , haga clic en cdigo.
Agregue la siguiente lnea al principio del mdulo de cdigo:
Imports System.Data.OleDb

6. Inserte el siguiente cdigo en la clase de formulario : :


Private m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=C:\ExcelData1.xls;" & _ "Extended
Properties=""Excel 8.0;HDR=YES""" Private m_sConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data
Source=C:\ExcelData2.xls;" & _ "Extended Properties=""Excel 8.0;HDR=YES""" Private m_sNorthwind = _ "C:\Program
Files\Microsoft Office\Office10\Samples\Northwind.mdb" Private m_sAction As String Private Sub Form1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RadioButton1.Text = "Create_Workbook" RadioButton2.Text =
"Retrieve_Records" RadioButton3.Text = "Add_Records" RadioButton4.Text = "Update_Records" RadioButton5.Text =
"Update_Individual_Cells" RadioButton6.Text = "Use_External_Source" Button1.Text = "Go!" End Sub Private Sub
RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles RadioButton1.Click, RadioButton2.Click,
RadioButton3.Click, _ RadioButton4.Click, RadioButton5.Click, RadioButton6.Click m_sAction = sender.Text'Store the text
for the selected radio button End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click Try ' Call the associated routine to add/update/modify the workbook. Select Case
m_sAction Case "Create_Workbook" : Create_Workbook() Case "Retrieve_Records" : Retrieve_Records() Case "Add_Records" :
Add_Records() Case "Update_Records" : Update_Records() Case "Update_Individual_Cells" : Update_Individual_Cells() Case
"Use_External_Source" : Use_External_Source() End Select Catch ex As OleDbException Dim er As OleDbError For Each er In
ex.Errors MsgBox(er.Message) Next Catch ex2 As System.InvalidOperationException MsgBox(ex2.Message) End Try End Sub Public
Sub Create_Workbook() ' If the workbooks already exist, prompt to delete. Dim answer As MsgBoxResult If
Dir("C:\ExcelData1.xls") <> "" Or Dir("C:\ExcelData2.xls") <> "" Then answer = MsgBox("Delete existing workbooks
(C:\ExcelData1.xls and " & _ "C:\ExcelData2.xls)?", MsgBoxStyle.YesNo) If answer = MsgBoxResult.Yes Then If
Dir("C:\ExcelData1.xls") <> "" Then Kill("C:\ExcelData1.xls") If Dir("C:\ExcelData2.xls") <> "" Then
Kill("C:\ExcelData2.xls") Else Exit Sub End If End If
'========================================================================== ' Create a workbook with a table named
EmployeeData. The table has 3 ' fields: ID (char 255), Name (char 255) and Birthdate (date).
'========================================================================== Dim conn As New OleDbConnection()
conn.ConnectionString = m_sConn1 conn.Open() Dim cmd1 As New OleDbCommand() cmd1.Connection = conn cmd1.CommandText =
"CREATE TABLE EmployeeData (Id char(255), Name char(255), BirthDate date)" cmd1.ExecuteNonQuery() cmd1.CommandText =
"INSERT INTO EmployeeData (Id, Name, BirthDate) values ('AAA', 'Andrew', '12/4/1955')" cmd1.ExecuteNonQuery() conn.Close()
'========================================================================== ' Create a workbook with a table named
InventoryData. The table has 3 ' fields: Product (char 255), Qty (float) and Price (currency).
'========================================================================== conn.ConnectionString = m_sConn2 conn.Open()
Dim cmd2 As New OleDbCommand() cmd2.Connection = conn cmd2.CommandText = "CREATE TABLE InventoryData (Product char(255),
Qty float, Price currency)" cmd2.ExecuteNonQuery() cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price)
values ('Cola', 200, 1.35)" cmd2.ExecuteNonQuery() cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price)
values ('Chips', 550, 0.89)" cmd2.ExecuteNonQuery() conn.Close() ' NOTE: You can ALTER and DROP tables in a similar
fashion. End Sub Public Sub Retrieve_Records() '========================================================== 'Use a
DataReader to read data from the EmployeeData table. '========================================================== Dim conn1
As New System.Data.OleDb.OleDbConnection(m_sConn1) conn1.Open() Dim cmd1 As New System.Data.OleDb.OleDbCommand("Select *
From [EmployeeData$]", conn1) Dim rdr As OleDbDataReader = cmd1.ExecuteReader Debug.WriteLine(vbCrLf & "EmployeeData:" &
vbCrLf & "=============") Do While rdr.Read() Debug.WriteLine(System.String.Format("{0,-10}{1, -15}{2}", _
rdr.GetString(0), rdr.GetString(1), _ rdr.GetDateTime(2).ToString("d"))) Loop rdr.Close() conn1.Close()
'======================================================== 'Use a DataSet to read data from the InventoryData table.
'======================================================== Dim conn2 As New OleDbConnection(m_sConn2) Dim da As New
OleDbDataAdapter("Select * From [InventoryData$]", conn2) Dim ds As DataSet = New DataSet() da.Fill(ds)
Debug.WriteLine(vbCrLf & "InventoryData:" & vbCrLf & "==============") Dim dr As DataRow For Each dr In
ds.Tables(0).Rows'Show results in output window Debug.WriteLine(System.String.Format("{0,-15}{1, -6}{2}", _ dr("Product"),
dr("Qty"), dr("Price"))) Next conn2.Close() End Sub Public Sub Add_Records()
'========================================================================== ' Run an INSERT INTO command to add new
records to the workbook. '========================================================================== Dim conn1 As New

support.microsoft.com/kb/316934/es

3/5

18/04/13

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro de Excel con Visual Basic .net
System.Data.OleDb.OleDbConnection(m_sConn1) conn1.Open() Dim cmd As New System.Data.OleDb.OleDbCommand() cmd.Connection =
conn1 cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('CCC', 'Charlie', '10/14/48')"
cmd.ExecuteNonQuery() cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('DDD', 'Deloris',
'7/19/98')" cmd.ExecuteNonQuery() conn1.Close() '==================================================================== 'Use
the InsertCommand object to add new records to the InventoryData 'table.
'==================================================================== Dim conn2 As New OleDbConnection(m_sConn2) Dim da As
New OleDbDataAdapter("Select * From [InventoryData$]", conn2) Dim ds As DataSet = New DataSet() da.Fill(ds,
"MyExcelTable") ' Generate the InsertCommand and add the parameters for the command. da.InsertCommand = New OleDbCommand(
_ "INSERT INTO [InventoryData$] (Product, Qty, Price) VALUES (?, ?, ?)", conn2)
da.InsertCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product") da.InsertCommand.Parameters.Add("@Qty",
OleDbType.Double).SourceColumn = "Qty" da.InsertCommand.Parameters.Add("@Price", OleDbType.Currency).SourceColumn =
"Price" ' Add two new records to the dataset. Dim dr As DataRow dr = ds.Tables(0).NewRow dr("Product") = "Bread" :
dr("Qty") = 390 : dr("Price") = 1.89 : ds.Tables(0).Rows.Add(dr) dr = ds.Tables(0).NewRow dr("Product") = "Milk" :
dr("Qty") = 99 : dr("Price") = 2.59 : ds.Tables(0).Rows.Add(dr) ' Apply the dataset changes to the actual data source (the
workbook). da.Update(ds, "MyExcelTable") conn2.Close() End Sub Public Sub Update_Records()
'========================================================================== ' Run an UPDATE command to change a record in
the EmployeeData ' table. '========================================================================== Dim conn1 As New
System.Data.OleDb.OleDbConnection(m_sConn1) conn1.Open() Dim cmd As New System.Data.OleDb.OleDbCommand() cmd.Connection =
conn1 cmd.CommandText = "UPDATE [EmployeeData$] " & _ "SET NAME = 'Aaron', BirthDate = '5/4/1975' WHERE ID = 'AAA'"
cmd.ExecuteNonQuery() conn1.Close() '==================================================================== ' Use the
UpdateCommand object to modify records in the InventoryData ' table.
'==================================================================== Dim conn2 As New OleDbConnection(m_sConn2) Dim da As
New OleDbDataAdapter("Select * From [InventoryData$]", conn2) Dim ds As DataSet = New DataSet() da.Fill(ds,
"MyInventoryTable") ' Generate the UpdateCommand and add the parameters for the command. da.UpdateCommand = New
OleDbCommand( _ "UPDATE [InventoryData$] SET Qty = ?, Price=? WHERE Product = ?", conn2)
da.UpdateCommand.Parameters.Add("@Qty", OleDbType.Numeric).SourceColumn = "Qty" da.UpdateCommand.Parameters.Add("@Price",
OleDbType.Currency).SourceColumn = "Price" da.UpdateCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product")
' Update the first two records. ds.Tables(0).Rows(0)("Qty") = 1000 ds.Tables(0).Rows(0)("Price") = 10.1
ds.Tables(0).Rows(1)("Qty") = 2000 ds.Tables(0).Rows(1)("Price") = 20.2 ' Apply the dataset changes to the actual data
source (the workbook). da.Update(ds, "MyInventoryTable") conn2.Close() End Sub Public Sub Update_Individual_Cells()
'========================================================================== ' Update individual cells on the EmployeeData
worksheet; ' specifically, cells F3, G3, and I4 are modified.
'========================================================================== ' NOTE: The connection string indicates that
the table does *NOT* ' have a header row. Dim conn As New System.Data.OleDb.OleDbConnection(m_sConn1.Replace("HDR=YES",
"HDR=NO")) conn.Open() Dim cmd As New System.Data.OleDb.OleDbCommand() cmd.Connection = conn cmd.CommandText = "UPDATE
[EmployeeData$F3:G3] SET F1 = 'Cell F3', F2 = 'Cell G3'" cmd.ExecuteNonQuery() cmd.CommandText = "UPDATE
[EmployeeData$I4:I4] SET F1 = 'Cell I4'" cmd.ExecuteNonQuery() conn.Close() End Sub Public Sub Use_External_Source() '
Open a connection to the sample Northwind Access database. Dim conn As New System.Data.OleDb.OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & m_sNorthwind & ";") conn.Open() Dim cmd As New
System.Data.OleDb.OleDbCommand() cmd.Connection = conn
'======================================================================= ' Run an INSERT..INTO command on the Northwind
database to append ' the records from a table/query to an existing table in the Excel ' workbook.
'======================================================================= cmd.CommandText = "INSERT INTO [EmployeeData$] IN
'C:\ExcelData1.xls' 'Excel 8.0;'" & _ "SELECT EmployeeID AS ID, FirstName AS Name, BirthDate FROM Employees"
cmd.ExecuteNonQuery() '========================================================================== ' Run a SELECT..INTO
command on the Northwind database to insert ' all the records from a table/query into a new sheet in the Excel ' workbook.
'========================================================================== cmd.CommandText = "SELECT * INTO [Excel
8.0;Database=C:\ExcelData2.xls].[ProductSales]" & _ "FROM [Product Sales for 1997]" cmd.ExecuteNonQuery() conn.Close() End
Sub
7. Modifique la ruta de acceso a la base de datos de Access de ejemplo, Northwind, para el miembro de m_sNorthwind en el cdigo, si es necesario.

Prubelo
1. En el men Ver , elija Otras ventanasy, a continuacin, haga clic en resultados para mostrar la ventana de salida . .
2. Presione F5 para compilar y ejecutar el programa.
3. Haga clic en Create_Workbook y, a continuacin, haga clic en Ir. El procedimiento Create_Workbook ejecuta los comandos CREATE TABLE para crear
dos nuevos libros: C:\ExcelData1.xls y C:\ExcelData2.xls. ExcelData1.xls contiene una sola hoja (tabla), denominada EmployeeData y ExcelData2.xls
contiene una sola hoja (tabla) denominada InventoryData. Las tablas se rellenan con los registros.
Nota: en cada paso restante en esta prueba, abra los libros en Excel para examinar los resultados. O bien, haga clic en Retrieve_Records para ver el
contenido de la tabla o tablas en la salida de ventana de Visual Studio .NET.
4. Haga clic en Retrieve_Records y, a continuacin, haga clic en Ir. El procedimiento Retrieve_Records extrae los registros de las tablas y los muestra en
la ventana de resultados similar al siguiente:
EmployeeData: ============= AAA Andrew 12/4/1955 InventoryData: ============== Cola 200 1.35 Chips 550 0.89
5. Haga clic en Add_Records y, a continuacin, haga clic en Ir. La rutina Add_Records agrega dos registros a cada tabla:
EmployeeData: ============= AAA Andrew 12/4/1955 CCC Charlie 10/14/1948 DDD Deloris 7/19/1998 InventoryData:
============== Cola 200 1.35 Chips 550 0.89 Bread 390 1.89 Milk 99 2.59
6. Haga clic en Update_Records y, a continuacin, haga clic en Ir. La rutina Update_Records actualiza dos registros en cada libro:
EmployeeData: ============= AAA Aaron 5/4/1975 CCC Charlie 10/14/1948 DDD Deloris 7/19/1998 InventoryData: ==============
Cola 1000 10.1 Chips 2000 20.2 Bread 390 1.89 Milk 99 2.59
7. Haga clic en Update_Individual_Cells y, a continuacin, haga clic en Ir. La rutina Update_Individual_Cells modifica determinadas celdas de la hoja de
clculo EmployeeData ExcelData1.xls; en concreto, se actualizan las celdas F3, G3 y I4.
8. Haga clic en Use_External_Source y, a continuacin, haga clic en Ir. Cuando se utiliza una instruccin INSERT...EN el comando, la rutina
Use_External_Source anexa registros de la tabla Northwind 'Empleados' en la hoja de clculo EmployeeData ExcelData1.xls. Y Use_External_Source

support.microsoft.com/kb/316934/es

4/5

18/04/13

Cmo utilizar ADO.NET para recuperar y modificar registros en un libro de Excel con Visual Basic .net
utiliza una instruccin SELECT...EN el comando para crear una nueva tabla (o la hoja) en ExcelData2.xls que contiene todos los registros de Neptuno
tabla productos.
Nota: si hace clic en Use_External_Source ms de una vez, la lista de empleados se anexar varias veces porque la clave principal no se reconoce o
forzada.

Formato de celdas
Si utiliza ADO.NET para agregar o actualizar registros en un libro existente, puede aplicar formato al libro que se utilizar con los registros nuevos o
actualizados de celdas. Al actualizar un registro existente (o fila) en un libro, se conserva el formato de celda. Y cuando se inserta un nuevo registro (o fila)
en un libro, el nuevo registro hereda el formato de la fila por encima de l.
El siguiente procedimiento muestra cmo puede utilizar el formato de un libro con el cdigo de ejemplo:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Presione F5 para compilar y ejecutar el ejemplo.


En Form1, haga clic en Create_Workbook y, a continuacin, haga clic en Ir.
Inicie Microsoft Excel y abra C:\ExcelData1.xls.
Aplicar un estilo de fuente en negrita a la celda A2.
Aplicar una cursiva, subrayado estilo a la celda B2 y alinear en el centro.
Aplicar un formato de fecha larga a la celda C2.
Guarde y cierre C:\ExcelData1.xls.
En Form1, haga clic en Add_Records y, a continuacin, haga clic en Ir.
Abra C:\ExcelData1.xls en Excel y tenga en cuenta que las dos nuevas filas han heredado el formato de la primera fila.

Limitaciones
stas son algunas limitaciones del proveedor de Jet OLE DB con respecto a los orgenes de datos de Excel:
No se puede insertar las frmulas en las celdas utilizando ADO.NET.
El proveedor OLE DB de Jet es incapaz de proporcionar informacin clave o ndice para las tablas de un libro de Excel. Por este motivo, no se puede
usar CommandBuilder para generar automticamente las actualizaciones e inserciones de registros en un libro de Excel.

Referencias
Para obtener informacin adicional, haga clic en los nmeros de artculo siguientes para verlos en Microsoft Knowledge Base:
316756 (http://support.microsoft.com/kb/316756/) PRB: Error se produce cuando se utiliza ADO.NET OLEDbDataAdapter para modificar el libro de Excel
257819 (http://support.microsoft.com/kb/257819/EN-US/) Cmo utilizar ADO con datos de Excel desde Visual Basic o VBA
306022 (http://support.microsoft.com/kb/306022/) Cmo transferir datos a un libro de Excel utilizando Visual Basic .NET
306023 (http://support.microsoft.com/kb/306023/) Cmo transferir datos a un libro de Excel utilizando .NET Visual C#
311731 (http://support.microsoft.com/kb/311731/) Cmo consultar y presentar datos de Excel mediante ASP.NET, ADO.NET y Visual Basic .NET
306572 (http://support.microsoft.com/kb/306572/) Cmo consultar y presentar datos de Excel mediante ASP.NET, ADO.NET y Visual C# .NET
278973 (http://support.microsoft.com/kb/278973/) EJEMPLO: ExcelADO muestra cmo utilizar ADO para leer y escribir datos en libros de Excel

Propiedades
Id. de artculo: 316934 - ltima revisin: jueves, 05 de julio de 2012 - Versin: 9.0
La info r ma ci n d e es te a r tculo s e r efier e a :
Microsoft Excel 2002 Standard Edition
Microsoft Excel 2000 Standard Edition
Microsoft Visual Basic .NET 2002 Standard Edition

Pa la b r a s cla ve: kbhowtomaster kbmt KB316934 KbMtes


Traduccin automtica

IMPORTANTE: Este artculo ha sido traducido por un software de traduccin automtica de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor
humano. Microsoft le ofrece artculos traducidos por un traductor humano y artculos traducidos automticamente para que tenga acceso en su propio idioma a todos los
artculos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artculos traducidos automticamente pueden contener errores en el vocabulario, la sintaxis o la
gramtica, como los que un extranjero podra cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisin, error o dao ocasionado por una mala
traduccin del contenido o como consecuencia de su utilizacin por nuestros clientes. Microsoft suele actualizar el software de traduccin frecuentemente.
Haga clic aqu para ver el artculo original (en ingls): 316934 (http://support.microsoft.com/kb/316934/en-us/ )

Enviar comentarios
Volver al principio

support.microsoft.com/kb/316934/es

5/5

You might also like