Come posso grep i dati in Excel?


11

Ho un file Excel che contiene dati in due colonne come:

Operator ID           MXS1268
Name                  ramesh    

Devo verificare la presenza di duplicati in più file Excel che hanno lo stesso valore per l'ID operatore e visualizzarli o inserirli in alcuni file di registro.


A seconda di cosa vuoi fare, ci sono diversi modi per farlo in Excel. Se vuoi cercare, puoi farlo tramite Ctrl + F aprendo la finestra di dialogo Trova. Se ci sono più criteri, forse i filtri ti aiuteranno. Per rimuovere i duplicati ci sono diversi modi. Dovrai essere un po 'più chiaro in ciò di cui hai bisogno. Molto probabilmente, però, se cerchi in questo sito, troverai ciò di cui hai bisogno poiché le tue esigenze sembrano essere abbastanza semplici.
Amer,

1
Tutti i file Excel sono nello stesso formato a due colonne? Sono i file .xlsxo .csv? I file hanno più fogli? L'aggiunta di ulteriori informazioni alla tua domanda ti aiuterà a ottenere risposte.
Eccellente il

converti in testo e grep.
Ярослав Рахматуллин,

Risposte:


5

Ancora nessuna risposta decente? Da quando hai detto grep, suppongo che tu sappia usare una 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 il rapporto:

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

È possibile ottenere una copia sul file di input con wget http://sprunge.us/MbhE -q -O- | base64.exe -d > ram.xls.
Ярослав Рахматуллин

Voglio provare la tua soluzione ma il tuo link è "Proibito"
Ken Ingram

guarda il file prima di eseguirlo, non essere sciocco.
Ярослав Рахматуллин,

Ascolta. Non diventare personale. Ottengo un errore 403 con quel link. "2019-02-08 09:38:13 ERRORE 403: proibito."
Ken Ingram,

1
ok. Pensavo intendessi qualcos'altro. basta google il pacchetto xls2txt
Ярослав Рахматуллин

2

Su Linux o Cygwin:

$ xlsx2csv myfile.xlsx | grep MXS1268 

Dannazione. Era troppo bello per essere vero. L'ho installato, ma è tornato un errore: ===> "ValueError: valore letterale non valido per int () con base 10: '1023 1025'"
Ken Ingram

Prova entrambi con python2 e python3
golimar

Eh. Cosa intendi? Prova entrambi cosa?
Ken Ingram

Ho un elenco di 10 file xlsx e voglio grep per un dato.
Ken Ingram

1

Potresti provare ad usare openpyxl - o qualsiasi numero di pacchetti Python - se conosci Python di base. Se sei pronto per usare grep, invia l'excel al testo e instradalo attraverso grep. O semplicemente scrivere uno script pygrep per fare tutto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.