Форум сайта python.su
0
Здравствуйте.
ПОМОГИТЕ!!!
Выбираю данные с одного файла Excel и записываю их в другой. После открытия второго файла возникает ошибка. “Обнаружены данные, которые не могут быть прочитаны. Хочет восстановить”. Такая ошибка возникает когда хочу записать столбец с текстом. Причем в тексте встречаются и цифры и другие символы. Столбец с датой записывается нормально и открывается.
Не пойму, видимо какие-то строки не корректные.
В текстовый файл записывается нормально. Через Print тоже все выводит.
ПОМОГИТЕ!!!
Офлайн
0
Использую библиотеки xlrd, xlwt.
Офлайн
0
Модераторы, может в другой раздел написать? Очень нужна помощь.
Пробовал по разному.
Думал с кодировкой что-то. Не помогает.
Офлайн
857
Запакуй в архив и прикрепи к сообщению:
- исходный xls-файл
- конечный xls-файл
- сам скрипт
Офлайн
0
Спасибо. Сейчас скрипта нет. Вечером скину, посмотрите ПОЖАЛУЙСТА.
Офлайн
0
Вот архив
Прикреплённый файлы:
test.rar (81,8 KБ)
Офлайн
253
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')
Офлайн
857
Вот такой код, и запускать надо именно во втором питоне.
#!/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)
Офлайн
0
Спасибо за отклик.
Получается в третьем питоне с excel нет возможности нормально работать?
Неужели никто не может перевести эти библиотеки на третий питон. Или написать новые.
С excel ведь часто приходится сталкиваться. Писать макросы иногда не совсем удобно.
Офлайн
16
Для третьего питона есть Openpyxl и XlsxWriter
Первая библиотека - для чтения и записи xlsx, вторая - для записи xlsx файлов
Отредактировано Stright (Март 29, 2016 07:28:58)
Офлайн