Найти - Пользователи
Полная версия: Работа с Excel
Начало » Python для новичков » Работа с Excel
1 2
MaratD
Здравствуйте.
ПОМОГИТЕ!!!
Выбираю данные с одного файла Excel и записываю их в другой. После открытия второго файла возникает ошибка. “Обнаружены данные, которые не могут быть прочитаны. Хочет восстановить”. Такая ошибка возникает когда хочу записать столбец с текстом. Причем в тексте встречаются и цифры и другие символы. Столбец с датой записывается нормально и открывается.
Не пойму, видимо какие-то строки не корректные.
В текстовый файл записывается нормально. Через Print тоже все выводит.
ПОМОГИТЕ!!!
MaratD
Использую библиотеки xlrd, xlwt.
MaratD
Модераторы, может в другой раздел написать? Очень нужна помощь.
Пробовал по разному.
Думал с кодировкой что-то. Не помогает.
py.user.next
Запакуй в архив и прикрепи к сообщению:
- исходный xls-файл
- конечный xls-файл
- сам скрипт
MaratD
Спасибо. Сейчас скрипта нет. Вечером скину, посмотрите ПОЖАЛУЙСТА.
MaratD
Вот архив
doza_and
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')

запустите упрощенный код, посмотрите коды ошибки. У меня ваше художество (а может мое) постоянно падает потому ничего и не пишется.
py.user.next
Вот такой код, и запускать надо именно во втором питоне.
#!/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
У меня ваше художество (а может мое) постоянно падает потому ничего и не пишется.
Не, он же прислал файл с результатом, а там давно знакомый глюк, когда посреди документа какой-то символьный мусор. Я в прошлый раз пытался отловить, откуда этот мусор появляется, но так и не отловил, потому что появляется он вообще произвольно (в зависимости от того, сколько данных).
MaratD
Спасибо за отклик.
Получается в третьем питоне с excel нет возможности нормально работать?
Неужели никто не может перевести эти библиотеки на третий питон. Или написать новые.
С excel ведь часто приходится сталкиваться. Писать макросы иногда не совсем удобно.
Stright
Для третьего питона есть Openpyxl и XlsxWriter
Первая библиотека - для чтения и записи xlsx, вторая - для записи xlsx файлов
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB