如何在Excel中grep数据?


11

我有一个Excel文件,其中包含两列数据:

Operator ID           MXS1268
Name                  ramesh    

我需要检查多个Excel文件中的重复项,这些文件的操作员ID值相同,然后将其显示或放入某些日志文件中。


根据您要执行的操作,在Excel中有不同的执行方法。如果要搜索,则可以通过Ctrl + F弹出“查找”对话框来进行。如果有多个条件,也许过滤器会帮助您。为了删除重复项,有多种方法。您必须更加清楚自己的要求。但是,如果您搜索此站点,很可能会找到所需的内容,因为您的要求似乎很简单。
阿米尔(Amer)

1
所有Excel文件是否都采用相同的两列格式?是文件.xlsx还是.csv?文件有多张纸吗?向您的问题添加更多信息将帮助您获得答案。
Excellll 2013年

转换为文本和grep。
ЯрославРахматуллин

Answers:


5

还是没有体面的答案?自从您说了grep以来,我假设您知道如何使用外壳程序;

$ 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

和报告:

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

您可以使用来获得输入文件的副本wget http://sprunge.us/MbhE -q -O- | base64.exe -d > ram.xls
ЯрославРахматуллин

我想尝试您的解决方案,但您的链接为“禁止访问”
Ken Ingram,

只是在运行文件之前先查看它,不要傻了。
ЯрославРахматуллин

听。不要个人。我收到该链接的403错误。“ 2019-02-08 09:38:13错误403:禁止。”
肯·英格拉姆

1
好。我以为你是别的意思。只是谷歌的包xls2txt
ЯрославРахматуллин

2

在Linux或Cygwin上:

$ xlsx2csv myfile.xlsx | grep MXS1268 

该死的。太好了,难以置信。我已经安装了它,但我得到的只是一个错误:===>“ ValueError:int()的无效文字,基数为10:'1023 1025'”
Ken Ingram,

尝试同时使用python2和python3
golimar

嗯 你什么意思?都尝试什么?
肯·英格拉姆

我有10个xlsx文件的列表,我想grep一份数据。
肯英格拉姆

1

如果您了解基本的Python,则可以尝试使用openpyxl或任何数量的Python软件包。如果您对使用grep感到困惑,则将excel输出为文本并通过grep传递。或者只是编写pygrep脚本来完成所有操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.