Como posso grep dados no Excel?


11

Eu tenho um arquivo do Excel que contém dados em duas colunas como:

Operator ID           MXS1268
Name                  ramesh    

Preciso verificar se há duplicatas em vários arquivos do Excel que tenham o mesmo valor para o ID do operador e exibi-lo ou colocá-lo em algum arquivo de log.


Dependendo do que você deseja fazer, existem diferentes maneiras de fazê-las no Excel. Se você deseja pesquisar, pode fazê-lo via Ctrl + F, exibindo a caixa de diálogo Localizar. Se houver vários critérios, talvez os filtros o ajudem. Para remover duplicatas, existem várias maneiras. Você terá que ser um pouco mais claro no que precisa. Provavelmente, se você pesquisar neste site, encontrará o que precisa, pois seus requisitos parecem bastante simples.
— Amer

11
Todos os arquivos do Excel estão no mesmo formato de duas colunas? Os arquivos são .xlsxou .csv? Os arquivos têm várias folhas? Adicionar mais informações à sua pergunta ajudará você a obter respostas.
— Excellll

converter para texto e grep.
— 214133 #

Respostas:


5

Ainda não há respostas decentes? Desde que você disse grep, presumo que você saiba como usar um shell;

$ link=http://wizard.ae.krakow.pl/~jb/xls2txt/xls2txt-0.13.tar.gz
$ wget -nv "$link" && \
  tar xf `basename "$link"` && \
  cd $(basename "$link" .tar.gz) &&\
   make
2013-07-24 URL:(...)/xls2txt-0.13.tar.gz [12419/12419] -> "xls2txt-0.13.tar.gz"
cc -O2 -g -DVERSION=0.13 -c xls2txt.c -o xls2txt.o
cc -O2 -g   -c -o ole.o ole.c
cc -O2 -g   -c -o cp.o cp.c
cc -O2 -g   -c -o ummap.o ummap.c
cc -O2 -g   -c -o ieee754.o ieee754.c
cc -lm  xls2txt.o ole.o cp.o ummap.o ieee754.o   -o xls2txt

$ awkf() { awk -F\\t '{ printf "%20s | %-20s\n", $1, $2 }' ; }
$ x2t() { ./xls2txt $1 C4:D5 | awkf > `basename "$1" .xls`.txt ; }
$ x2t ramesh2.xls ; x2t ramesh.xls

E o relatório:

$ grep MXS1268 ramesh*txt
ramesh.txt:         Operator ID | MXS1268
ramesh2.txt:         Operator ID | MXS1268

Você pode obter uma cópia no arquivo de entrada com wget http://sprunge.us/MbhE -q -O- | base64.exe -d > ram.xls.
— Ярослав Рахматуллин

Quero experimentar a sua solução, mas sua ligação é "proibido"
— Ken Ingram

basta olhar para o arquivo antes de executá-lo, não seja bobo.
— Febрослав Рахматуллин

Ouço. Não seja pessoal. Eu recebo um erro 403 com esse link. "2019-02-08 09:38:13 ERRO 403: Proibido."
— Ken Ingram

11
Está bem. Eu pensei que você quis dizer outra coisa. apenas pesquise no google o pacote xls2txt
— Ярослав Рахматуллин

2

No Linux ou Cygwin:

$ xlsx2csv myfile.xlsx | grep MXS1268 

Droga. Isso foi bom demais para ser verdade. Eu o instalei, mas foi tudo o que recebi de erro: ===> "ValueError: literal inválido para int () com base 10: '1023 1025'"
— Ken Ingram

Tente ambos com python2 e python3
— Golimar

Eh. O que você quer dizer? Tente o que?
— Ken Ingram

Eu tenho uma lista de 10 arquivos xlsx e quero grep para um pedaço de dados.
— Ken Ingram

1

Você pode tentar usar o openpyxl - ou qualquer número de pacotes Python - se conhecer o Python básico. Se você está decidido a usar o grep, envie o excel para texto e direcione-o pelo grep. Ou apenas escreva um script pygrep para fazer tudo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.