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
Inicie o Microsoft Excel e crie uma nova planilha.
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.
Realce as linhas e colunas em que os dados estão.
No menu Inserir, aponte para Nome e clique em Definir.
Na caixa de texto Nomes na pasta de trabalho , digite myRange1 e clique em OK.
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.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.
Abra o Microsoft Visual Studio .NET. O Ambiente de Desenvolvimento Integrado (IDE) do Visual Studio .NET é exibido.
No menu arquivo, aponte para novo e, em seguida, clique em Project.
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.
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.
- 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)
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.
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.
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.
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.
Na seção Web Forms da caixa de ferramentas, clique em DataGrid e arraste-o para o designer para WebForm1.
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.
Adicione as seguintes instruções à parte superior da página code-behind, acima da seção namespace:
using System.Data.OleDb; using System.Data;
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();
No menu Arquivo , clique em Salvar Tudo para salvar os arquivos do projeto.
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.
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários