Consultar e exibir dados do Excel usando ASP.NET, ADO.NET e Visual C# .NET

Este artigo demonstra como consultar e exibir dados de uma planilha do Excel por meio de uma página de ASP.NET (.aspx) usando o Visual C# .NET.

Versão original do produto: ASP.NET
Número de KB original: 306572

Criar uma planilha do Excel de exemplo

  1. Inicie o Microsoft Excel e crie uma nova planilha.

  2. Adicione as seguintes informações à nova planilha para criar um banco de dados do Excel:

    Número da linha A B
    1 FirstName Sobrenome
    2 Scott Bispo
    3 Katie Jordão

    Observação

    Embora os dados sejam iniciados com a célula A1 neste exemplo, você pode adicionar esses dados a todas as células adjacentes na planilha.

  3. Realce as linhas e colunas em que os dados estão.

  4. No menu Inserir, aponte para Nome e clique em Definir.

  5. Na caixa de texto Nomes na pasta de trabalho , digite myRange1 e clique em OK.

  6. No menu Arquivo, clique em Salvar. Na lista Salvar, selecione a raiz do servidor Web (que normalmente C:\InetPub\Wwwroot\é ). Na caixa de texto Nome do arquivo, digite ExcelData.xls. Clique em OK.

  7. No menu Arquivo, clique em Sair.

Criar um exemplo de ASP.NET usando o Visual C# .NET

Este exemplo de código demonstra como consultar e exibir informações em uma planilha do Excel. O código a seguir usa a planilha que você criou na seção anterior.

  1. Abra o Microsoft Visual Studio .NET. O Ambiente de Desenvolvimento Integrado (IDE) do Visual Studio .NET é exibido.

  2. No menu arquivo, aponte para novo e, em seguida, clique em Project.

  3. Na caixa de diálogo Novo Projeto , em Tipos de Projeto, clique em Projetos do Visual C#. Em Modelos, clique em ASP.NET Aplicativo Web.

  4. Na caixa de diálogo Novo Projeto , localize as caixas de texto Nome e Local .

    Observação

    • A caixa de texto Nome não está disponível (ela aparece esmaecida ou esmaecida). A caixa de texto Local contém o texto (ou semelhante) http://localhost/WebApplication1.
    • Substitua o texto na caixa de texto Local por http://localhost/ExcelCSTest, e clique em OK. Um novo projeto é criado, que inclui um Formulário Web chamado WebForm1.aspx.
  5. No IDE do .NET do Visual Studio, localize a janela Gerenciador de Soluções. Se você não conseguir encontrá-lo, clique em Gerenciador de Soluções no menu Exibir.

  6. Em Gerenciador de Soluções, clique com o botão direito do mouse em WebForm1.aspx e clique em Exibir Designer para exibir o designer para a aparência da página. O designer permite adicionar controles e manipular a aparência da página.

  7. Localize a caixa de ferramentas. Dependendo das configurações da Opção IDE, a caixa de ferramentas pode aparecer como uma janela ou um botão (que geralmente aparece no lado esquerdo do IDE). Se você não conseguir localizar a caixa de ferramentas, clique em Caixa de Ferramentas no menu Exibir .

    Se a caixa de ferramentas aparecer como um botão, mova o ponteiro sobre o botão para que o conteúdo da caixa de ferramentas seja exibido.

  8. Quando a exibição de designer de um Formulário Web está ativa, a caixa de ferramentas é dividida em seções, incluindo as seções Web Forms, Componentes, HTML e outras. Clique na seção Web Forms.

  9. Na seção Web Forms da caixa de ferramentas, clique em DataGrid e arraste-o para o designer para WebForm1.

  10. Clique com o botão direito do mouse em WebForm1.aspx e clique em Exibir Código para exibir a fonte de página de código atrás.

  11. Adicione as seguintes instruções à parte superior da página code-behind, acima da seção namespace:

    using System.Data.OleDb;
    using System.Data;
    
  12. Realce o código a seguir, clique com o botão direito do mouse no código e clique em Copiar. Em WebForm1.aspx.cs, cole o código no 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. No menu Arquivo , clique em Salvar Tudo para salvar os arquivos do projeto.

  14. No menu Compilar , clique em Compilar para criar o projeto. Esta etapa prepara o código na página code-behind para que ele possa ser executado.

  15. Em Gerenciador de Soluções, clique com o botão direito do mouse em WebForm1.aspx e clique em Exibir no Navegador para executar o código.

Explicação de código adicional

O exemplo de código neste artigo usa o Provedor OLE DB do Microsoft Jet para acessar a planilha do Excel. Este código usa o seguinte cadeia de conexão para se conectar à planilha:

// 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 os comentários indicam, você deve modificar as informações de caminho para a planilha específica do Excel. Além disso, você também deve definir o valor do Extended Properties parâmetro para se conectar corretamente ao arquivo.

Observação

O cadeia de conexão usa a Server.MapPath função. Essa função usa um caminho relativo a Serviços de Informações da Internet da Microsoft (IIS) a um arquivo e retorna um caminho de disco rígido para esse arquivo. Por exemplo, na seção Criar planilha do Excel de exemplo , você cria ExcelData.xls no diretório raiz da Web, que normalmente está localizado em C:\Inetpub\Wwwroot. Isso também cria uma subpasta chamada ExcelCSTest dentro da pasta Wwwroot e um arquivo chamado WebForm1.aspx dentro do _ExcelCSTest_folder.

Neste exemplo, o caminho do arquivo no disco rígido é como C:\Inetpub\Wwwroot\ExcelCSTest. Wwwroot contém ExcelData.xls, o ExcelCSTest contém WebForm1.aspx.

O caminho do IIS para os arquivos é como C:\Web Root\ExcelCSTest. E a Raiz da Web contém ExcelData.xls, o ExcelCSTest contém WebForm1.aspx.

Nesse caso, o caminho relativo da página WebForm1.aspx para o arquivo ExcelData.xls é .. /ExcelData.xls. O .. / caracteres informam o IIS para subir um nível de pasta. Portanto, o código Server.MapPath("../ExcelData.xls") retorna a seguinte cadeia de caracteres:

C:\Inetpub\Wwwroot\ExcelData.xls

Você não é obrigado a usar Server.MapPath. Você também pode codificar essas informações em um caminho específico ou usar qualquer método para fornecer o local do arquivo excel no disco rígido.

Referências

Para obter mais informações sobre como usar ADO.NET, consulte Como preencher um objeto DataSet de um banco de dados usando o Visual C# .NET

Observação

As empresas de exemplo, organizações, produtos, nomes de domínio, endereços de email, logotipos, pessoas, locais e eventos retratados aqui são fictícios. Nenhuma associação com qualquer empresa real, organização, produto, nome de domínio, endereço de email, logotipo, pessoa, locais ou eventos é pretendida ou deve ser inferida.