Уведомления

Группа в Telegram: @pythonsu

#1 Март 28, 2016 07:06:21

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Здравствуйте.
ПОМОГИТЕ!!!
Выбираю данные с одного файла Excel и записываю их в другой. После открытия второго файла возникает ошибка. “Обнаружены данные, которые не могут быть прочитаны. Хочет восстановить”. Такая ошибка возникает когда хочу записать столбец с текстом. Причем в тексте встречаются и цифры и другие символы. Столбец с датой записывается нормально и открывается.
Не пойму, видимо какие-то строки не корректные.
В текстовый файл записывается нормально. Через Print тоже все выводит.
ПОМОГИТЕ!!!

Офлайн

#2 Март 28, 2016 07:07:58

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Использую библиотеки xlrd, xlwt.

Офлайн

#3 Март 28, 2016 10:12:14

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Модераторы, может в другой раздел написать? Очень нужна помощь.
Пробовал по разному.
Думал с кодировкой что-то. Не помогает.

Офлайн

#4 Март 28, 2016 10:38:33

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с Excel

Запакуй в архив и прикрепи к сообщению:
- исходный xls-файл
- конечный xls-файл
- сам скрипт



Офлайн

#5 Март 28, 2016 13:40:49

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Спасибо. Сейчас скрипта нет. Вечером скину, посмотрите ПОЖАЛУЙСТА.

Офлайн

#6 Март 28, 2016 20:16:37

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Вот архив

Прикреплённый файлы:
attachment test.rar (81,8 KБ)

Офлайн

#7 Март 28, 2016 20:53:51

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Работа с Excel

MaratD
посмотрите ПОЖАЛУЙСТА
Извините, позубоскалю. Главная ошибка - попытка записать данные назад в exel :).

import xlrd
import xlwt
fname = "test.xls"
Exel = xlrd.open_workbook(fname, formatting_info=True)
sheet = Exel.sheet_by_index(0)
vals = [sheet.row_values(rownum) for rownum in range(sheet.nrows)]
wb = xlwt.Workbook()
ws = wb.add_sheet('test')
i = 0
for zapis in vals:
        ws.write(i, 0, zapis[1])
        i += 1
wb.save('example1.xls')

запустите упрощенный код, посмотрите коды ошибки. У меня ваше художество (а может мое) постоянно падает потому ничего и не пишется.



Офлайн

#8 Март 29, 2016 02:08:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа с Excel

Вот такой код, и запускать надо именно во втором питоне.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import xlrd
import xlwt
 
fname = u'Тест.xls'
exel = xlrd.open_workbook(fname, formatting_info=True)
sheet = exel.sheet_by_index(0)
vals = [sheet.row_values(rownum) for rownum in range(sheet.nrows)]
 
wb = xlwt.Workbook()
ws = wb.add_sheet(u'Тест')
 
i = 0
for zapis in vals:
    #ws.write(i, 0, zapis[2])
    ws.write(i, 0, zapis[0])
    i += 1
 
wb.save('example.xls')
Для третьего питона эти модули глючно переведены. (Второй раз с этим сталкиваюсь.)

doza_and
У меня ваше художество (а может мое) постоянно падает потому ничего и не пишется.
Не, он же прислал файл с результатом, а там давно знакомый глюк, когда посреди документа какой-то символьный мусор. Я в прошлый раз пытался отловить, откуда этот мусор появляется, но так и не отловил, потому что появляется он вообще произвольно (в зависимости от того, сколько данных).



Отредактировано py.user.next (Март 29, 2016 02:13:34)

Офлайн

#9 Март 29, 2016 07:01:00

MaratD
Зарегистрирован: 2016-01-25
Сообщения: 138
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с Excel

Спасибо за отклик.
Получается в третьем питоне с excel нет возможности нормально работать?
Неужели никто не может перевести эти библиотеки на третий питон. Или написать новые.
С excel ведь часто приходится сталкиваться. Писать макросы иногда не совсем удобно.

Офлайн

#10 Март 29, 2016 07:27:13

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Работа с Excel

Для третьего питона есть Openpyxl и XlsxWriter
Первая библиотека - для чтения и записи xlsx, вторая - для записи xlsx файлов

Отредактировано Stright (Март 29, 2016 07:28:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version