Làm cách nào tôi có thể grep dữ liệu trong Excel?


11

Tôi có một tệp Excel chứa dữ liệu trong hai cột như:

Operator ID           MXS1268
Name                  ramesh    

Tôi cần kiểm tra các bản sao trong nhiều tệp Excel có cùng giá trị cho ID toán tử và hiển thị hoặc đặt nó trong một số tệp nhật ký.


Tùy thuộc vào những gì bạn muốn làm, có nhiều cách khác nhau để thực hiện chúng trong Excel. Nếu bạn muốn tìm kiếm, thì có thể làm như vậy thông qua Ctrl + F hiển thị hộp thoại Tìm kiếm. Nếu có nhiều tiêu chí, có lẽ các bộ lọc sẽ giúp bạn hiểu. Để loại bỏ trùng lặp, có một số cách. Bạn sẽ phải rõ ràng hơn một chút trong những gì bạn yêu cầu. Rất có thể mặc dù nếu bạn tìm kiếm trang web này, bạn sẽ tìm thấy những gì bạn cần vì yêu cầu của bạn dường như đủ đơn giản.
Amer

1
Có phải tất cả các tệp Excel có cùng định dạng hai cột không? Là các tập tin .xlsxhay .csv? Các tập tin có nhiều tờ? Thêm thông tin vào câu hỏi của bạn sẽ giúp bạn có câu trả lời.
Xuất sắc

chuyển đổi thành văn bản và grep.
Ярослав Рахматуллин

Câu trả lời:


5

Vẫn không có câu trả lời đàng hoàng? Vì bạn đã nói grep, tôi giả sử bạn biết cách sử dụng 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

Và báo cáo:

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

Bạn có thể nhận được một bản sao trên tập tin đầu vào với wget http://sprunge.us/MbhE -q -O- | base64.exe -d > ram.xls.
Ярослав Рахматуллин

Tôi muốn thử giải pháp của bạn nhưng liên kết của bạn là "Cấm"
Ken Ingram

Chỉ cần nhìn vào tập tin trước khi bạn chạy nó, đừng ngớ ngẩn.
Ярослав Рахматуллин

Nghe. Đừng có cá nhân. Tôi nhận được một lỗi 403 với liên kết đó. "2019-02-08 09:38:13 LRI 403: Bị cấm."
Ken Ingram

1
đồng ý. Tôi nghĩ bạn có ý gì khác. chỉ google xls2txt gói
Ярослав Рахматуллин

2

Trên Linux hoặc Cygwin:

$ xlsx2csv myfile.xlsx | grep MXS1268 

Chỉ trích. Điều đó là quá tốt để là sự thật. Tôi đã cài đặt nó, nhưng một lỗi là tất cả những gì tôi nhận được: ===> "ValueError: chữ không hợp lệ cho int () với cơ sở 10: '1023 1025'"
Ken Ingram

Hãy thử cả với python2 và python3
golimar

Hở. Ý anh là gì? Thử cả hai cái gì?
Ken Ingram

Tôi có một danh sách 10 tệp xlsx và tôi muốn grep cho một phần dữ liệu.
Ken Ingram

1

Bạn có thể thử sử dụng openpyxl - hoặc bất kỳ số lượng gói Python nào-- nếu bạn biết Python cơ bản. Nếu bạn đã chết khi sử dụng grep, hãy xuất excel thành văn bản và chuyển nó qua grep. Hoặc chỉ cần viết một kịch bản pygrep để làm tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.