Файлы Excel передаются на конвейер
Проблема:
Быстро посмотреть содержимое файла Excel, возможно отправить на фильтры grep, uniq, awk, sed и т.д.
Решение:
Если вам часто приходится брать информацию из Excel-файлов, на помощь вам сможет прийти Python с модулем xlrd. Предварительно установите этот модуль, взяв его либо с репозитория(пример для Debian),
root@localhost:~#apt-get install python-xlrd
либо с сайта проекта
http://pypi.python.org/pypi/xlrd
После этого, набросав простенький скрипт вида
[+] xlscat.py (code)
#!/usr/bin/python
import xlrd, sys, getopt
class xlcat:
def __init__(self, filename):
self.filename = filename
self.wb = xlrd.open_workbook(filename)
def getpagelist(self):
count = 0
for i in self.wb.sheet_names():
print("%d: %s"%(count, i))
count += 1
def catpage(self, num=None, name=None):
if num:
sheet = self.wb.sheet_by_index(num)
elif name:
sheet = self.wb.sheet_by_name(name)
for row in range(sheet.nrows):
newrow = ""
for i in sheet.row_values(row):
newrow += "%s\t"%i
print(newrow)
def main(argv=sys.argv):
opts, args = getopt.getopt(argv[1:], "lhn:i:")
cat = xlcat(args[0])
for o, a in opts:
if o == '-l':
cat.getpagelist()
elif o == '-n':
cat.catpage(name = a)
elif o == '-i':
cat.catpage(num = int(a))
if __name__ == '__main__':
sys.exit(main())
Можно насладиться всеми прелестями bash для работы с xls-документооборотом.
user@localhost:~$ xlscat.py -n 1 sample.xls | grep '192.168.1.1' | awk '{print $1}'
OPTION #1:
Возможно в вашем случае нужно будет немного поиграть с кодировкой, либо вообще задавать её отдельным параметром
Комментариев нет:
Отправить комментарий