Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2018 16:12:59

nfedkin
Зарегистрирован: 2018-01-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

Здравствуйте господа питонисты. Мне нужна помощь знающих. Не получается записать данные из текстового документа в эксель в столбец по ячейкам, примерно 20 наименований. Получается запись всех данных в одну ячейку или записывает последнюю строку или вообще ничего не записывает. В текстовом документе каждое наименования записаны с новой строки. Вот вариант программы.

ma = openpyxl.Workbook()
may = ma.get_active_sheet()
tx = open('Временный файл.txt')
line = tx.read()
for i in range(2, may.max_row + 1):
may.cell(row=i, column=2).value = line
ma.save('Объеденненый файл.xlsx')

Меня интересует библиотека openpyxl. Питон 3.4.3. Эксель 2010. Спасибо.

Офлайн

#2 Янв. 24, 2018 20:18:11

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

вот пример как можно записать в разные столбцы

 >>>csv_file = 'C:\\test.csv'
>>>a = ['columnA', 'columnB', 'columnC', 'columnD']
>>>with open(csv_file, 'w') as f:
...        string_w = ';'.join(a)
...        f.write(string_w)

Отредактировано papuas (Янв. 24, 2018 20:21:33)

Офлайн

#3 Янв. 24, 2018 22:07:52

Kudria
Зарегистрирован: 2016-10-02
Сообщения: 16
Репутация: +  1  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

А зачем? Excel и так csv файлы открывает.
Но если надо, то можно сделать примерно так:

 for i, line in enumerate(tx):
     may.cell(row=i+1, column=2).value = line

Офлайн

#4 Янв. 25, 2018 10:02:25

nfedkin
Зарегистрирован: 2018-01-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

Kudria
А зачем? Excel и так csv файлы открывает.Но если надо, то можно сделать примерно так:
Выдает ошибку
Traceback (most recent call last):
File “C:\Python34\Rabota.py”, line 6, in <module>
b = openpyxl.load_workbook(a)
File “C:\Python34\lib\site-packages\openpyxl\reader\excel.py”, line 171, in load_workbook
archive = _validate_archive(filename)
File “C:\Python34\lib\site-packages\openpyxl\reader\excel.py”, line 108, in _validate_archive
raise InvalidFileException(msg)
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support .csv file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
Мне нужно запись в Эксель файл, а не в csv файл.

Офлайн

#5 Янв. 25, 2018 15:59:44

nfedkin
Зарегистрирован: 2018-01-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

papuas
вот пример как можно записать в разные столбцы
нужно запись сделать в эксель файл

Офлайн

#6 Янв. 25, 2018 20:39:04

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

Запись данных в цикле. Питон

nfedkin
Выдает ошибку
Да вы читайте что вам пишут. Экселом открывайте, что же вы питон запускаете. Смысл писать программу если вы все равно потом в экселе скажете file -> open. Это вы с равным успехом можете и для csv файла сказать. Программа которую вы планируете написать поэтому не экономит ни единого щелчка мыши или нажатия на клавиши. Следовательно абсолютно бесполезна. Вот это вам и сказали.



Отредактировано doza_and (Янв. 25, 2018 20:40:55)

Офлайн

#7 Янв. 26, 2018 17:48:26

nfedkin
Зарегистрирован: 2018-01-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

Вопрос остается открытым.

Офлайн

#8 Янв. 27, 2018 01:10:27

nfedkin
Зарегистрирован: 2018-01-24
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись данных в цикле. Питон

Kudria
А зачем? Excel и так csv файлы открывает.Но если надо, то можно сделать примерно так:
Спасибо, разобрался, получилось.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version