Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2016 08:35:18

andman
Зарегистрирован: 2016-09-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

Пишу на python3.4
xlsxwriter 0.9.3

 and@and-MS-1738 ~ $ uname -a
Linux and-MS-1738 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

 # -*- coding: utf-8 -*-
import xlsxwriter, os
file = 'data.xlsx'
path = os.getenv("PWD", os.getcwd())
wb = xlsxwriter.Workbook(path + '/' + file)
ws = wb.get_worksheet_by_name("Поколение")
print("Листы:", wb.worksheets())
ws.write(0, 0, "123456")
wb.close()

при запуске получаю:
 Листы: []
Traceback (most recent call last):
  File "тест2.py", line 8, in <module>
    ws.write(0, 0, "123456")
AttributeError: 'NoneType' object has no attribute 'write'

В текущем каталоге точно есть файл data.xlsx и в нём точто есть лист “Поколение”
Причём добавить лист с помощью метода add_worksheet могу без проблем и далее писать в него, а вот получить объект существующего листа - ни в какую.
Что я делаю не так?

Отредактировано andman (Сен. 30, 2016 08:55:05)

Офлайн

#2 Сен. 30, 2016 11:17:32

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

Не помню, чтобы xlswriter работал на чтение. По-моему только на создание. Если есть такая возможность киньте ссылку на документацию…

P.S. По большому xlsx формат - это большой такой xml, который можно распарсить и поменять в нем нужные значения.

Офлайн

#3 Сен. 30, 2016 11:27:13

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

Ну да, точно…

XlsxWriter is a Python module that can be used to write text, numbers, formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file. It supports features such as formatting and many more, including:

100% compatible Excel XLSX files.
Full formatting.
Merged cells.
Defined names.
Charts.
Autofilters.
Data validation and drop down lists.
Conditional formatting.
Worksheet PNG/JPEG images.
Rich multi-format strings.
Cell comments.
Textboxes.
Integration with Pandas.
Memory optimization mode for writing large files.

Отредактировано 4kpt_IV (Сен. 30, 2016 11:27:39)

Офлайн

#4 Сен. 30, 2016 12:22:08

andman
Зарегистрирован: 2016-09-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

Хорошо, а как мне тогда дописать в существующий файл в существующий лист ?

Офлайн

#5 Сен. 30, 2016 18:47:55

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

andman
Хорошо, а как мне тогда дописать в существующий файл в существующий лист ?

4kpt_IV
P.S. По большому xlsx формат - это большой такой xml, который можно распарсить и поменять в нем нужные значения.

Офлайн

#6 Сен. 30, 2016 21:01:32

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

xlsxwriter Добавить запись в существующий лист

andman
Хорошо, а как мне тогда дописать в существующий файл в существующий лист ?
Раз никто не отвечает, то наверное это никому не нужно. В том числе и вам, просто вы это еще не осознали :).

https://openpyxl.readthedocs.io/en/default/



Офлайн

#7 Сен. 30, 2016 21:30:12

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

xlsxwriter Добавить запись в существующий лист

либо считать одной библиотекой (openpyxl, xlrd), а записать другой в новый файл c помощью XlsxWriter

Офлайн

#8 Сен. 30, 2016 21:39:00

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

xlrd не берет xlsx

Офлайн

#9 Сен. 30, 2016 22:03:22

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

4kpt_IV
xlrd не берет xlsx
Берёт. Сам не ожидал.

Офлайн

#10 Сен. 30, 2016 22:06:26

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

xlsxwriter Добавить запись в существующий лист

Подождите. Я имел ввиду не это. Я имел ввиду, что нельзя поправить и сохранить. А то, что можно вычитать - можно и xml вычитать. В этом случае нужно выбирать весь файл и его снова собирать средствами xlsxwriter. Но не много ли оверхеда для правки xml?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version