pyExcelerator или xlrd - Как найти / найти строку для данных нескольких столбцов данных?

1

Python, взаимодействующий с EXCEL... мне нужно найти способ, чтобы я мог найти/найти строку для данных столбцов. Теперь im сканирование целых строк один за другим... Было бы полезно, если есть некоторые функции, такие как FIND/SEARCH/REPLACE.... Я не вижу эти функции в модулях pyExcelerator или xlrd. Я не хочу использовать win32com модули! это делает мои окна инструментов основаны!

НАЙТИ/ПОИСК строк Excel через Python.... Любая идея, кто-нибудь?

Теги:
excel
search
xlrd
pyexcelerator

4 ответа

5

@John Fouhy: [Я сторонник xlwt и автор xlrd]

Часть чтения электронных таблиц pyExcelerator была настолько категорически отвергнута, что полностью исчезла из xlwt. Чтобы прочитать любые файлы XLS, созданные с помощью Excel 2.0 до 11.0 (Excel 2003) или совместимого программного обеспечения, используя Python 2.1+, используйте xlrd

То, что "простой optimi [sz] ation" не требуется с xlrd:

import xlrd
book = xlrd.open_workbook("foo.xls")
sheet = book.sheet_by_number(0) # alternatively: sheet_by_name("Budget")
for row_index in xrange(sheet.nrows): 
    for col_index in xrange(sheet.ncols):
  • 0
    Держа руку у Джона Мачина, я использовал xlrd для создания приложения в прошлом году (еще раз спасибо, Джон!). Он знает свои вещи здесь.
2

Вы не можете. Эти инструменты не предлагают возможности поиска. Вы должны перебирать данные в цикле и выполнять поиск самостоятельно. К сожалению.

2

"Теперь я просматриваю целые строки один за другим"

Что не так с этим? "поиск" - в контексте электронной таблицы - действительно сложный. Значения поиска? Искать формулы? Искать строки вниз по столбцам? Искать только определенные столбцы? Искать только определенные строки?

Электронная таблица - это не простой текст - шаблоны проектирования простой текстовой обработки не применяются.

Поиск электронных таблиц затруднен, и вы делаете это правильно. Там ничего лучше, потому что это сложно.

0

С pyExcelerator вы можете сделать простую оптимизацию, сначала найдя максимальные индексы строк и столбцов (и сохраняя их), чтобы вы перебирали через (row, i) for i in range(maxcol+1) вместо итерации по всем клавишам словаря. Это может быть лучше всего, если вы не захотите пройти и создать значение отображения словаря для набора ключей.

Кстати, если вы используете pyExcelerator для написания электронных таблиц, имейте в виду, что у него есть некоторые ошибки. Я столкнулся с одним, связанным с записью целых чисел между 2 30 и 2 32 (или около того). По-видимому, оригинальному автору трудно связаться в эти дни, поэтому xlwt - это вилка, которая исправляет (известные) ошибки. Для написания электронных таблиц это замена для pyExcelerator; вы можете сделать import xlwt as pyExcelerator и ничего не менять. Однако он не читает электронные таблицы.

  • 0
    Интересная дополнительная информация. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню