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.

munish
fonte
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
Ярослав Рахматуллин
fonte
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 
golimar
fonte
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.

blackappy
fonte