You are viewing [info]chevalry's journal


Потихоньку осваиваем openpyxl. Пока запнулся на следующей проблеме (которая, строго говоря, прямо к openpyxl) не относится.
Итак, имеем код:
>>> from openpyxl import load_workbook
>>> w = load_workbook(filename='base.xlsm', use_iterators=True) # Важно! Используем use_iterators, так как файл большой
>>> sh = w.get_active_sheet() # Вследствие использования use_iterators, сейчас sh - это IterableWorksheet
>>> for row in sh.iter_rows(range_string='A1:C4'):
>>>     for cell in row:
>>>         print '{0}{1}) {2}'.format(cell.column, cell.row, cell.internal_value)

В результате получаем ошибку:

Traceback (most recent call last):
File "
", line 1, in
File "chsql.py", line 71, in make_sh
print '{0}{1}) {2}'.format(cell.column, cell.row, cell.internal_value)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)


Эта ошибка возникает, когда программа натыкается в ячейке на русский текст, то есть на кириллицу.

Пока имею в активе эти два поста:
1) http://habrahabr.ru/post/117236/
2) http://shum-beliy.livejournal.com/733.html

Рассчитываю, что второй пост мне поможет решить проблему, как и вообще навести в голове порядок с кодировками...
P.S. Есть еще эти ссылки: 3) http://www.linux.org.ru/forum/development/4004465 4) http://www.joelonsoftware.com/articles/Unicode.html

Tags:

  • Leave a comment
  • Add to Memories

При попытке открыть существующий файл xlsm выдает ошибку:

>>> import openpyxl
>>> from openpyxl.reader.excel import load_workbook
>>> wb = load_workbook(filename = r'base.xlsm')

Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/pymodules/python2.6/openpyxl/reader/excel.py", line 50, in load_workbook
sheet_names = read_sheets_titles(xml_source = archive.get_from_name(arc_name = ARC_APP))
File "/usr/lib/pymodules/python2.6/openpyxl/reader/workbook.py", line 65, in read_sheets_titles
size = get_number_of_parts(xml_source)['Worksheets']
KeyError: 'Worksheets'

Пока я эту ошибку не устранил, но вот, кажется, здесь обсуждается похожая ситуация:
https://bitbucket.org/ericgazoni/openpyxl/issue/22/error-opening-xlsx-file

Долго не мог понять, почему у меня эта библиотека не устанавливается на Ubuntu по команде:
$ sudo apt-get install python-openpyxl

Моя машина упорно мне сообщала, что:
E: Не удалось найти пакет python-openpyxl

В результате решил эту проблему так:
http://www.ubuntuupdates.org/package/core/natty/universe/base/python-openpyxl

На этой странице нажал кнопку All arch deb package, и Установщик все сделал за меня.

Начал изучать документацию. Мне показалось, какая-то она сырая. Спотыкаюсь буквально на каждом шагу. Посмотрим, на что способен этот пакет...

P.S. Да, кстати, вот мануал по пакету:
http://packages.python.org/openpyxl/index.html

P.P.S. Хотя вот эти инструкции, кажется, больше помогают в изучении:
https://bitbucket.org/ericgazoni/openpyxl/wiki/Home

P.P.S. Ну я и олух! И на фига я себе версию 1.1.0 загрузил? Вот последняя версия 1.5.8.1:
http://packages.ubuntu.com/quantal/all/python-openpyxl/download

Tags:

  • Leave a comment
  • Add to Memories

ch
ВЕДОМОСТИ

Работодатели готовы вновь нанимать уволившихся сотрудников

Лишь 18% HR-менеджеров не готовы принимать в компанию тех, кто уже в ней работал; зато остальные видят в бывших сотрудниках неистощимый источник проверенных кадров
Читать целиком
Работодатели готовы вновь нанимать уволившихся сотрудников

  • Leave a comment
  • Add to Memories

Рассмешила эта картинка:



Источник: В ядро Linux встроили поддержку Android

Tags:

VBA Excel | Introduction to Classes


Простое и легкое введение в тему классов на VBA:

Introduction To Classes

Рекомендую! Минимум информации, но зато самое необходимое.

Tags:


ВЕДОМОСТИ

Где лучше работать: в российских или иностранных компаниях?

Отечественные руководители назвали преимущества и проблемы в работе в местных и иностранных компаниях
Читать целиком
Где лучше работать: в российских или иностранных компаниях?

  • Leave a comment
  • Add to Memories

Зацепило, блин


ВЕДОМОСТИ

Более половины россиян испытывают психологическое давление на работе

Лишь треть служащих под давлением стремятся работать эффективнее
Читать целиком
Более половины россиян испытывают психологическое давление на работе

Еще одна полезная страничка для начинающих линуксоидов (впрочем, для не начинающих - тоже):

Соответствие функций MS Excel и OpenOffice Calc
  • Leave a comment
  • Add to Memories

При попытке чтения первой попавшейся мне страницы HTML наткнулся на дурацкую ошибку! Код:

import urllib2
url = 'http://www...'
page = urllib2.urlopen(url).read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(page)


В ответ получаю:

HTMLParser.HTMLParseError: bad end tag: u"", at line ..., column ...

Оказывается, это довольно древний способ обмана браузера, чтобы тот не рассматривал запись в данном месте js-кода как завершения тега script.

Перерыл кучу источников, пока не нашел это обсуждение:
http://www.python-forum.org/pythonforum/viewtopic.php?f=3&t=14281&start=0

Спасибо Bitbert3, который предложил следующее решение:

from BeautifulSoup import BeautifulSoup
import urllib2
import re

url = "http://www.baseball-reference.com/teams/BOS/2009.shtml"

page = urllib2.urlopen(url).read()
page = re.sub('</scr', '<\/scr', page)
soup = BeautifulSoup(page)

t = soup.find(id="team_batting")


Благодаря re.sub все заработало!

Tags:

Profile

[info]chevalry
Шевалье

Board



Поиск по блогу
Яндекс


free counters

Locations of visitors to this page

Latest Month

May 2012
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Tags

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Lilia Ahner