Python, взаимодействующий с EXCEL... мне нужно найти способ, чтобы я мог найти/найти строку для данных столбцов. Теперь im сканирование целых строк один за другим... Было бы полезно, если есть некоторые функции, такие как FIND/SEARCH/REPLACE.... Я не вижу эти функции в модулях pyExcelerator или xlrd. Я не хочу использовать win32com модули! это делает мои окна инструментов основаны!
НАЙТИ/ПОИСК строк Excel через Python.... Любая идея, кто-нибудь?
@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):
Вы не можете. Эти инструменты не предлагают возможности поиска. Вы должны перебирать данные в цикле и выполнять поиск самостоятельно. К сожалению.
"Теперь я просматриваю целые строки один за другим"
Что не так с этим? "поиск" - в контексте электронной таблицы - действительно сложный. Значения поиска? Искать формулы? Искать строки вниз по столбцам? Искать только определенные столбцы? Искать только определенные строки?
Электронная таблица - это не простой текст - шаблоны проектирования простой текстовой обработки не применяются.
Поиск электронных таблиц затруднен, и вы делаете это правильно. Там ничего лучше, потому что это сложно.
С pyExcelerator вы можете сделать простую оптимизацию, сначала найдя максимальные индексы строк и столбцов (и сохраняя их), чтобы вы перебирали через (row, i) for i in range(maxcol+1)
вместо итерации по всем клавишам словаря. Это может быть лучше всего, если вы не захотите пройти и создать значение отображения словаря для набора ключей.
Кстати, если вы используете pyExcelerator для написания электронных таблиц, имейте в виду, что у него есть некоторые ошибки. Я столкнулся с одним, связанным с записью целых чисел между 2 30 и 2 32 (или около того). По-видимому, оригинальному автору трудно связаться в эти дни, поэтому xlwt
- это вилка, которая исправляет (известные) ошибки. Для написания электронных таблиц это замена для pyExcelerator; вы можете сделать import xlwt as pyExcelerator
и ничего не менять. Однако он не читает электронные таблицы.