Como consulta e dados de atualização do Excel usando ADO do ASP

Traduções deste artigo Traduções deste artigo
ID do artigo: 195951 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo demonstra como consultar e atualizar informações em uma planilha do Excel usando ActiveX Data Objects (ADO) em uma página Active Server Pages (ASP). Este artigo também descreve as limitações que estão associadas com esse tipo de aplicativo.

Importante: Embora aplicativos ASP/ADO oferecer suporte a acesso multiusuário, uma planilha do Excel não. Portanto, esse método de consultar e atualizar informações não dá suporte multiusuário acesso simultâneo.

Mais Informações

Para acessar os dados em sua planilha do Excel para este exemplo, use o driver ODBC da Microsoft para o Excel. Crie uma tabela para acessar os dados, criando um intervalo nomeado em sua planilha do Excel.

Passos para criar aplicativos de exemplo

  • Crie o arquivo do Excel ADOtest.xls com os seguintes dados na Planilha1:

    Recolher esta tabelaExpandir esta tabela
    Column1Column2column3
    RR Isso15
    bbteste20
    eefunciona25

    Observação Se uma coluna em sua planilha do Excel contiver texto e números, o driver ODBC do Excel não consegue interpretar corretamente qual tipo de dados deve ser a coluna. Certifique-se de que todas as células em uma coluna são do mesmo tipo de dados. Os seguintes três erros podem ocorrer se cada célula em uma coluna não é do mesmo tipo ou se possui tipos mistos entre "texto" e "gerais":
    1. Microsoft OLE DB Provider para ODBC drivers erro '80040e21'
      As propriedades de solicitação não podem ter suporte por este driver de ODBC.
    2. Microsoft OLE DB Provider para ODBC drivers erro '80004005'
      A consulta não é atualizável porque não contém nenhuma coluna pesquisável para usar como uma chave promissor.
    3. Microsoft OLE DB Provider para ODBC drivers erro '80004005'
      Falha ao atualizar consulta com base. Atualizar a linha não foi encontrada.
  • Crie um intervalo nomeado, myRange1, em sua planilha:

    1. Realce a área de linhas e colunas onde residem a seus dados.
    2. No menu Inserir, aponte para nome e clique em definir.
    3. Digite myRange1 nome para o intervalo nomeado nome.
    4. Clique em OK.
    MyRange1 intervalo nomeado contém os seguintes dados:

    Recolher esta tabelaExpandir esta tabela
    Column1Column2column3
    RRIsso15
    bbteste20
    eefunciona25


    Observação ADO pressupõe que a primeira linha em uma consulta de Excel contém os títulos de coluna. Portanto, o intervalo nomeado deve incluir os títulos de coluna. Isso é um comportamento diferente do DAO.

    Observação Títulos de coluna não podem ser um número. O driver do Excel não é possível interpretá-los e, em vez disso, retorna uma referência de célula. Por exemplo, um título de coluna de "F1" poderia ser mal interpretado.
  • Criar um ODBC Data Source nome (DSN do sistema) apontando para o arquivo ADOTest.xls.
    1. No Control Panel, abra o ODBC Administrador.
    2. Na guia DSN de sistema, clique em Adicionar.
    3. Selecione o driver do Microsoft Excel (*.xls) e clique em Concluir. Se esta opção não existir, você precisará instalar o driver Microsoft ODBC para o Excel da configuração do Excel.
    4. Escolha ADOExcel para o nome da fonte de dados.
    5. Verifique se que a versão está definida para a versão correta do Excel.
    6. Clique em 'Selecionar pasta de trabalho...', vá para o ADOTest.xls arquivo e clique em OK.
    7. Clique no "Opções >>" botão e desmarque a caixa de seleção "Somente leitura".
    8. Clique em OK e em seguida, clique em OK novamente.
  • Definir permissões no arquivo de ADOTest.xls.
Se sua página ASP é acessada anonimamente, você precisará verificar se a conta anônima (IUSR_ <machinename>) possui pelo menos acesso de leitura/gravação (RW) para a planilha. Se você desejar excluir informações da planilha, você precisará conceder as permissões apropriadamente.

Se você estiver autenticação acesso para sua página ASP, você precisará garantir que todos os usuários que acessam seu aplicativo tem as permissões apropriadas.

Observação Se você não definir as permissões apropriadas na planilha, você obterá uma mensagem de erro semelhante à seguinte:

Microsoft OLE DB Provider para ODBC drivers erro '80004005'

[Microsoft][Excel ODBC driver] O Microsoft Jet mecanismo de banco de dados não pode abrir o arquivo '(desconhecido)'. Já está aberto exclusivamente por outro usuário, ou ter permissão para exibir seus dados.
  1. Criar uma nova página ASP e cole o código a seguir:
          <!-- Begin ASP Source Code -->
          <%@ LANGUAGE="VBSCRIPT" %>
          <%
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open "ADOExcel"
    
            Set objRS = Server.CreateObject("ADODB.Recordset")
            objRS.ActiveConnection = objConn
            objRS.CursorType = 3                    'Static cursor.
            objRS.LockType = 2                      'Pessimistic Lock.
            objRS.Source = "Select * from myRange1"
            objRS.Open
       %>
       <br>
       <%
          Response.Write("Original Data")
    
          'Printing out original spreadsheet headings and values.
    
          'Note that the first recordset does not have a "value" property
          'just a "name" property.  This will spit out the column headings.
    
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'The update is made here
    
          objRS.MoveFirst
          objRS.Fields(0).Value = "change"
          objRS.Fields(1).Value = "look"
          objRS.Fields(2).Value = "30"
          objRS.Update
    
          'Printing out spreadsheet headings and values after update.
    
          Response.Write("<br>Data after the update")
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'ADO Object clean up.
    
          objRS.Close
          Set objRS = Nothing
    
          objConn.Close
          Set objConn = Nothing
       %>
       <!-- End ASP Source Code -->
    					
  2. Salvar e nomear seu Active Server Page e exiba-no navegador. Você verá o seguinte:
          Original Data:
    
          column1    column2    column3
          -----------------------------
    
          rr         this       30
          bb         test       20
          tt         works      25
    
    
          Data after the update:
    
          column1    column2    column3
          -----------------------------
    
          change     look       30
          bb         test       20
          tt         works      25
    					
Observação Uma atualização foi executada na primeira linha do seu intervalo nomeado (após os cabeçalhos).

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
190195Como ExtractInformation de planilha do Excel com o DAO

Propriedades

ID do artigo: 195951 - Última revisão: quinta-feira, 1 de julho de 2004 - Revisão: 5.2
A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 1.0
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
Palavras-chave: 
kbmt kbcode kbhowto kbmdacnosweep KB195951 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 195951

Submeter comentários

 

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