Compartir a través de


Consultar y mostrar datos de Excel mediante ASP.NET, ADO.NET y Visual C# .NET

En este artículo se muestra cómo consultar y mostrar datos de una hoja de cálculo de Excel a través de una página de ASP.NET (.aspx) mediante Visual C# .NET.

Versión original del producto: ASP.NET
Número de KB original: 306572

Crear una hoja de cálculo de Excel de ejemplo

  1. Inicie Microsoft Excel y, a continuación, cree una nueva hoja de cálculo.

  2. Agregue la siguiente información a la nueva hoja de cálculo para crear una base de datos de Excel:

    Número de fila. A B
    1 Nombre Apellidos
    2 Scott Obispo
    3 Katie Jordania

    Nota:

    Aunque los datos comienzan con la celda A1 en este ejemplo, puede agregar estos datos a cualquier celda adyacente dentro de la hoja de cálculo.

  3. Resalte las filas y columnas donde están los datos.

  4. En el menú Insertar , seleccione Nombre y, a continuación, haga clic en Definir.

  5. En el cuadro de texto Nombres del libro , escriba myRange1 y, a continuación, 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 C:\InetPub\Wwwroot\ser ). En el cuadro de texto Nombre de archivo, escriba ExcelData.xls. Haga clic en Aceptar.

  7. En el menú Archivo , haga clic en Salir.

Creación de un ejemplo de ASP.NET mediante Visual C# .NET

En este ejemplo de código se muestra cómo consultar y mostrar información en una hoja de cálculo de Excel. El código siguiente usa la hoja de cálculo que creó en la sección anterior.

  1. Abra Microsoft Visual Studio .NET. Se muestra el entorno de desarrollo integrado (IDE) de Visual Studio .NET.

  2. En el menú Archivo , elija Nuevoy 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 ASP.NET aplicación web.

  4. En el cuadro de diálogo Nuevo proyecto , busque los cuadros de texto Nombre y Ubicación .

    Nota:

    • El cuadro de texto Nombre no está disponible (aparece atenuado o atenuado). El cuadro de texto Ubicación contiene el texto (o similar). http://localhost/WebApplication1
    • Reemplace el texto del cuadro de texto Ubicación por http://localhost/ExcelCSTesty, a continuación, haga clic en Aceptar. Se crea un nuevo proyecto, que incluye un formulario web denominado WebForm1.aspx.
  5. En el IDE de .NET de Visual Studio, busque la ventana Explorador de soluciones. Si no lo encuentra, haga clic en Explorador de soluciones en el menú Ver.

  6. En Explorador de soluciones, haga clic con el botón derecho en WebForm1.aspx y, a continuación, haga clic en Diseñador de vistas para mostrar el diseñador para la apariencia de la página. El diseñador permite agregar controles y manipular la apariencia de la página.

  7. Busque el cuadro de herramientas. Según la configuración de la opción del IDE, el cuadro de herramientas puede aparecer como una ventana o un botón (que a menudo aparece en el lado izquierdo del IDE). Si no encuentra 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 para que se muestre el contenido del cuadro de herramientas.

  8. Cuando la vista del diseñador de un formulario web está activa, el cuadro de herramientas se divide en secciones, incluidos los formularios web, componentes, HTML y otras secciones. Haga clic en la sección Formularios web.

  9. En la sección Formularios web del cuadro de herramientas, haga clic en DataGrid y arrástrelo al diseñador de WebForm1.

  10. Haga clic con el botón derecho en WebForm1.aspx y, a continuación, haga clic en Ver código para mostrar el origen de la página de código subyacente.

  11. Agregue las siguientes instrucciones a la parte superior de la página de código subyacente, encima de la sección espacio de nombres:

    using System.Data.OleDb;
    using System.Data;
    
  12. Resalte el código siguiente, haga clic con el botón derecho en el código y, a continuación, haga clic en Copiar. En WebForm1.aspx.cs, pegue el código en el Page_Load evento :

    // Create connection string variable. Modify the "Data Source"
    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    "Extended Properties=Excel 8.0;";
    
    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Open connection with the database.
    objConn.Open();
    
    // The code to follow uses a SQL SELECT command to display the data from the worksheet.
    // Create new OleDbCommand to return data from worksheet.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Create new OleDbDataAdapter that is used to build a DataSet
    // based on the preceding SQL SELECT statement.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pass the Select command to the adapter.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Create new DataSet to hold information from the worksheet.
    DataSet objDataset1 = new DataSet();
    
    // Fill the DataSet with the information from the worksheet.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Bind data to DataGrid control.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Clean up objects.
    objConn.Close();
    
  13. En el menú Archivo , haga clic en Guardar todo para guardar los archivos del proyecto.

  14. En el menú Compilar, haga clic en Compilar para compilar el proyecto. Este paso prepara el código en la página de código subyacente para que se pueda ejecutar.

  15. En Explorador de soluciones, haga clic con el botón derecho en WebForm1.aspx y, a continuación, haga clic en Ver en explorador para ejecutar el código.

Explicación adicional del código

En el ejemplo de código de este artículo se usa el proveedor OLE DB de Microsoft Jet para acceder a la hoja de cálculo de Excel. Este código usa el siguiente cadena de conexión para conectarse a la hoja de cálculo:

// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
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 ruta de acceso de la hoja de cálculo de Excel específica. Además, también debe establecer el valor del Extended Properties parámetro para conectarse correctamente al archivo.

Nota:

El cadena de conexión usa la Server.MapPath función . Esta función toma una ruta de acceso relativa a Microsoft Internet Information Services (IIS) a un archivo y devuelve una ruta de acceso de disco duro a ese archivo. Por ejemplo, en la sección Crear hoja de cálculo de Excel de ejemplo, cree ExcelData.xls en el directorio raíz web, que normalmente se encuentra en C:\Inetpub\Wwwroot. Esto también crea una subcarpeta denominada ExcelCSTest dentro de la carpeta Wwwroot y un archivo denominado WebForm1.aspx dentro del _ExcelCSTest_folder.

En este ejemplo, la ruta de acceso del archivo en el disco duro es como C:\Inetpub\Wwwroot\ExcelCSTest. Wwwroot contiene ExcelData.xls, ExcelCSTest contiene WebForm1.aspx.

La ruta de acceso de IIS a los archivos es como C:\Web Root\ExcelCSTest. Y Web Root contiene ExcelData.xls, ExcelCSTest contiene WebForm1.aspx.

En este caso, la ruta de acceso relativa de la página WebForm1.aspx al archivo ExcelData.xls es .. /ExcelData.xls. . . Los caracteres / informan a IIS para subir un nivel de carpeta. Por lo tanto, el código Server.MapPath("../ExcelData.xls") devuelve la cadena siguiente:

C:\Inetpub\Wwwroot\ExcelData.xls

No es necesario usar Server.MapPath. También puede codificar esta información en una ruta de acceso específica, o puede usar cualquier método para proporcionar la ubicación del archivo de Excel en el disco duro.

Referencias

Para obtener más información sobre el uso de ADO.NET, vea How To Populate a DataSet Object from a Database by Using Visual C# .NET (Cómo rellenar un objeto DataSet desde una base de datos mediante Visual C# .NET).

Nota:

Las compañías, organizaciones, productos, nombres de dominio, direcciones de correo electrónico, logotipos, personas, lugares y eventos que se citan a modo de ejemplo son ficticios. No se pretende indicar, ni debe deducirse, ninguna asociación con compañías, organizaciones, productos, dominios, direcciones de correo electrónico, logotipos, personas, lugares o hechos reales.