Você pode extrair dados do Excel de um arquivo .csv externo (e dinâmico)?

14

Eu tenho um script que gera várias métricas de desempenho para um computador em um arquivo .csv. O Excel faz uma verificação básica de estatísticas para desvio padrão, etc.

Sei que você pode importar arquivos .csv para o Excel, mas o que estou tentando fazer é ler esses dados dinamicamente em meu modelo do Excel sem ter que reimportar e remodelar cada vez.

Existe uma maneira de fazer com que uma célula / tabela faça referência a um .csv externo sem reimportar a cada vez?

    
por editor 20.01.2011 / 00:15

6 respostas

5

A maneira mais fácil de fazer isso é importar os dados para o Access ou o SQL Express e, em seguida, usar os recursos e funções de conexão de dados no Excel. Após a configuração inicial, tudo o que você precisa fazer é clicar em Atualizar tudo e ele puxará os dados e recalculará os valores.

Você pode importar diretamente o CSV com o recurso Conexão de dados, mas vai querer puxar os dados e adicioná-los a uma planilha. Isso funcionará, desde que você o importe para uma planilha secundária e deixe suas fórmulas e cálculos em outra planilha. Quando você clicar em Atualizar usando este método, ele solicitará o nome do arquivo e, em seguida, o importará novamente usando as mesmas configurações usadas originalmente. Esse método também é geralmente mais lento ou inutilizável, com grandes conjuntos de dados.

    
por 20.01.2011 / 00:32
4

Windows

Você também pode usar Power Query que é uma maneira um pouco mais flexível de se obter o mesmo que em @andy a resposta de -lynch .

  1. Obtenha aqui
  2. Instalar
  3. Ir para a nova guia da faixa de opções "Consulta ao cliente".
  4. Clique em "Do arquivo" ou "Da Web" e siga as instruções na tela.

Veja o gif animado abaixo para visualização:

MacOS

OPowerQuerynãoestádisponívelparaMacOS;nemacaixadediálogodearquivosabertos"Do Texto" do Excel no MacOS aceitando uma URL (pelo menos na versão 15.33).

Para criar essa conexão, primeiro é necessário construir um arquivo de consulta da Web (.iqy), como explicado neste guia e, em seguida, importe-o com o comando de menu" Dados - > Obter dados externos - > Executar salva ".

    
por 03.05.2016 / 19:23
2

A pergunta é "Como faço referência a dados em um arquivo .csv?

Meu caminho seria cortar o arquivo .csv e usar uma macro contendo VBA e ADO que receba os dados e os coloque diretamente em uma planilha no Excel. Qualquer banco de dados compatível com ODBC pode ser sua fonte.

O Excel 2010 tem dados > > Obter dados externos - de várias fontes de dados. No entanto, prefiro escrever meu próprio código porque tenho controle absoluto e posso formatar os resultados na macro. A atualização é feita com o clique de um botão e você pode fazer qualquer coisa com ele.

Eu poderia informar algumas especificidades se você me informar de que banco de dados as métricas estão vindo.

PS Veja a lista de drivers em Dados > > Obter dados externos > > Conexões existentes > > Procure mais > > Nova fonte > > Outro avançado > > Em seguida, o que leva você para a lista de propriedades do link de dados. Você precisa saber qual banco de dados de origem e qual driver usar. Você pode me enviar um email para cliffbeacham no hotmail com mais detalhes.

    
por 21.11.2012 / 19:02
1

Uma maneira mais simples (graças a esta postagem ) é apenas importar os dados como faria para um arquivo de texto que você já baixou (por exemplo, Data > Import Text File ), mas em vez disso de inserir um nome de arquivo, cole o URL do arquivo CSV.

    
por 15.06.2015 / 12:04
0

importe o arquivo csv diretamente via File->From Text verifique as propriedades da conexão em Data->Connections

veja Importe um arquivo de texto conectando-se a ele

    
por 31.05.2016 / 16:11
0

Com a macro ou script do VBS, seria semelhante (Excel2010 e posterior):

Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;\Path\To\CSV\Folder\CSV_Data.csv" _
        , Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "Book1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

Esta macro foi realmente gravada pelo gravador de macros do Excel 2013.
Você poderia criar um botão que aciona essa macro.

    
por 12.09.2017 / 14:13