Cómo consultar y presentar datos de Excel mediante ASP.NET, ADO.NET y Visual C# .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 306572 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se sigue paso a paso la demostración de cómo mostrar los datos de una hoja de cálculo de Excel a través de una página ASP.NET (.aspx) mediante Visual C# .NET.


Crear un libro de Excel de ejemplo

  1. Inicie Microsoft Excel y cree una hoja de cálculo nueva.
  2. Agregue la información siguiente a la nueva hoja de cálculo para crear una sencilla base de datos de Excel:
    Contraer esta tablaAmpliar esta tabla
    AB
    1NombreApellido
    2JuanOrtega
    3MaríaPérez
    Nota
    Aunque los datos comienzan con la celda A1 en este ejemplo, puede agregarlos en celdas contiguas dentro de la hoja de cálculo.
  3. Resalte las filas y las columnas donde residen los datos.
  4. En el menú Insertar, seleccione Nombre y haga clic en Definir.
  5. En el cuadro de texto Nombres en el libro, escriba myRange1 y, después, haga clic en Aceptar.
  6. En el menú Archivo, haga clic en Guardar. En la lista Guardar en, seleccione la raíz del servidor Web (que suele ser C:\InetPub\Wwwroot\). En el cuadro de texto Nombre de archivo, escriba ExcelData.xls. Haga clic en Aceptar.
  7. En el menú Archivo, haga clic en Salir.

Crear una aplicación de ASP.NET de ejemplo mediante Visual C# .NET

En este código de ejemplo se demuestra cómo consultar y mostrar información en una hoja de cálculo de Excel. En el código se usa la hoja de cálculo creada en la sección anterior.
  1. Abra Microsoft Visual Studio .NET. Se muestra el entorno de desarrollo integrado (IDE, Integrated Design Environment) de Visual Studio .NET.
  2. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto.
  3. En el cuadro de diálogo Nuevo proyecto, en Tipos de proyecto, haga clic en Proyectos de Visual C#. En Plantillas, haga clic en Aplicación Web ASP.NET.
  4. En el cuadro de diálogo Nuevo proyecto, busque los cuadros de texto Nombre y Ubicación. Observe que el cuadro de texto Nombre no está disponible (aparece en gris o atenuado). El cuadro de texto Ubicación contiene el texto siguiente (o similar):
    http://localhost/WebApplication1
    Sustituya el texto del cuadro Ubicación por http://localhost/ExcelCSTest y, después, haga clic en Aceptar. Se crea un nuevo proyecto, que incluye un Web Form denominado WebForm1.aspx.
  5. En el IDE de Visual Studio .NET, busque la ventana Explorador de soluciones. Si no puede encontrarla, haga clic en Explorador de soluciones en el menú Ver.
  6. En el Explorador de soluciones, haga clic con el botón secundario del mouse (ratón) en WebForm1.aspx y, después, haga clic en Ver diseñador para mostrar el diseñador para la apariencia de la página. El diseñador permite agregar controles y definir la apariencia de la página.
  7. Busque el cuadro de herramientas. Según la configuración de Opción de IDE, el cuadro de herramientas puede aparecer como una ventana o como un botón (que suele mostrarse a la izquierda del IDE). Si no puede encontrar el cuadro de herramientas, haga clic en Cuadro de herramientas en el menú Ver.

    Si el cuadro de herramientas aparece como un botón, mueva el puntero sobre el botón de modo que se muestre el contenido del cuadro de herramientas.
  8. Cuando la vista del diseñador de un Web Form esté activa, el cuadro de herramientas se divide en secciones, entre las que se incluyen Web Forms, Componentes, HTML y otras secciones. Haga clic en la sección Web Forms.
  9. En la sección Web Forms del cuadro de herramientas, haga clic en DataGrid y, después, arrástrelo al diseñador para WebForm1.
  10. Haga clic con el botón secundario del mouse en el archivo WebForm1.aspx y, después, haga clic en Ver código para mostrar el código fuente de la página de código subyacente.
  11. Agregue las instrucciones siguientes al principio de la página de código, encima de la sección de espacio de nombres:
     using System.Data.OleDb; using System.Data; 
  12. Resalte el código siguiente, haga clic con el botón secundario del mouse en el mismo y, a continuación, haga clic en Copiar. En WebForm1.aspx.cs, pegue el código en el evento Page_Load event:
     // Crear la variable de cadena de conexión. Modificar el parámetro "Origen de datos" // según corresponda en el entorno. String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" + "Extended Properties=Excel 8.0;";
    
    // Crear el objeto de conexión utilizando la cadena de conexión anterior. OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Abrir la conexión con la base de datos. objConn.Open();
    
    // El código utiliza un comando SQL SELECT para mostrar los datos de la hoja de cálculo.
    
    // Crear un nuevo OleDbCommand para devolver los datos de la hoja de cálculo. OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Crear un nuevo OleDbDataAdapter que se usa para generar un DataSet // basado en la instrucción SQL SELECT anterior. OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pasar el comando Select al adaptador. objAdapter1.SelectCommand = objCmdSelect;
    
    // Crear el nuevo DataSet para que aloje la información de la hoja de cálculo. DataSet objDataset1 = new DataSet();
    
    // Llenar el DataSet con la información de la hoja de cálculo. objAdapter1.Fill (objDataset1, "XLData");
    
    // Enlazar los datos al control DataGrid. DataGrid1.DataSource = objDataset1.Tables[0].DefaultView; DataGrid1.DataBind();
    
    // Limpiar los objetos. objConn.Close(); 
  13. En el menú Archivo, haga clic en Guardar todo para guardar los archivos del proyecto.
  14. En el menú Generar, haga clic en Generar para generar el proyecto. De esta forma se prepara el código en la página de código subyacente de modo que se pueda ejecutar.
  15. En el Explorador de soluciones, haga clic con el botón secundario del mouse en WebForm1.aspx y, después, haga clic en Ver en el explorador para ejecutar el código.

Explicación adicional del código

En el código de ejemplo contenido en este artículo se usa el Proveedor OLE DB de Microsoft Jet para tener acceso a la hoja de cálculo de Excel. En el código se usa la siguiente cadena de conexión para conectar con la hoja de cálculo:
// Crear la variable de cadena de conexión. Modificar el parámetro "Origen de datos" // según corresponda en el entorno. String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" + "Extended Properties=Excel 8.0;"; 
Como indican los comentarios, debe modificar la información de la ruta de acceso para la hoja de cálculo específica de Excel. Además, debe establecer el valor del parámetro Extended Properties para conectarse correctamente al archivo.

Observe que en la cadena de conexión se usa la función Server.MapPath. Esta función admite una ruta de acceso de un archivo relativa a los Servicios de Microsoft Internet Information Server (IIS) y devuelve una ruta de ese archivo en un disco duro. Por ejemplo, en la sección Crear un libro de Excel de ejemplo, se crea ExcelData.xls en el directorio raíz Web, que suele encontrarse en C:\Inetpub\Wwwroot. De esta forma también se crea una subcarpeta denominada ExcelCSTest dentro de la carpeta Wwwroot y un archivo llamado WebForm1.aspx dentro de la carpeta ExcelCSTest.

En este ejemplo, la ruta de acceso de los archivos en el disco duro tiene la forma siguiente:
     C drive
        - Inetpub
            - Wwwroot (which contains ExcelData.xls)
                - ExcelCSTest (which contains WebForm1.aspx)
				
La ruta de acceso de los archivos en IIS tiene la forma siguiente:
     Web Root (which contains ExcelData.xls)
        - ExcelCSTest (which contains WebForm1.aspx)
				
En este caso, la ruta de acceso relativa desde la página WebForm1.aspx del archivo ExcelData.xls es "../ExcelData.xls". Los caracteres "../" informan a IIS de que se debe subir un nivel en las carpetas. Por consiguiente, el código
 Server.MapPath("../ExcelData.xls") 
devuelve la cadena siguiente:
C:\Inetpub\Wwwroot\ExcelData.xls
No se requiere usar Server.MapPath. También puede codificar esta información con una ruta de acceso específica o puede utilizar cualquier método para suministrar la ubicación del archivo Excel en el disco duro.

Referencias

Para obtener información adicional acerca de cómo tener acceso a los archivos de Excel con ASP.NET, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
307029 CÓMO: Transferir datos XML a Microsoft Excel 2002 mediante Visual C# .NET
306023 CÓMO: Transferir datos a un libro de Excel utilizando Visual C# .NET
Para obtener información adicional acerca de cómo usar ADO.NET, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
306636 CÓMO: Conectarse a una base de datos y ejecutar un comando mediante ADO.NET y Visual C# .NET
314145 CÓMO: Llenar un objeto DataSet desde una base de datos mediante Visual C# .NET
307587 CÓMO: Actualizar una base de datos desde un objeto DataSet mediante Visual C# .NET
Nota
Los nombres de ejemplo de compañías, organizaciones, productos, nombres de dominio, direcciones de correo electrónico, logotipos, personas, lugares y acontecimientos aquí descritos son ficticios. No se pretende indicar ni debe deducirse ninguna asociación con compañías, organizaciones, productos, nombres de dominio, direcciones de correo electrónico, logotipos, personas, lugares o acontecimientos reales.

Propiedades

Id. de artículo: 306572 - Última revisión: viernes, 20 de enero de 2006 - Versión: 4.4
La información de este artículo se refiere a:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ADO.NET 1.1
  • Microsoft ADO.NET (included with the .NET Framework)
Palabras clave: 
kbdatabase kbhowtomaster kbwebforms KB306572

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com