Форум сайта python.su
Доброго времени суток. Возникла проблема с библиотекой XlsxWriter. Точнее, не совсем с ней. К примеру, имеем подобный код:
import xlsxwriter workbook = xlsxwriter.Workbook('filename.xlsx') worksheet = workbook.add_worksheet() worksheet.write(0, 0, 'Hello Excel')
worksheet1 = workbook.add_worksheet() worksheet2 = workbook.add_worksheet() worksheet3 = workbook.add_worksheet() worksheet4 = workbook.add_worksheet() ... worksheetN = workbook.add_worksheet()
Офлайн
Ну а циклы на что?
for _ in xrange(100): sheet = workbook.add_worksheet() sheet.write(0, 0, 'Hello Excel')
Отредактировано FishHook (Дек. 10, 2013 15:10:21)
Офлайн
FishHook
Ну а циклы на что?
Офлайн
Razor
как создать N-ое количество листов (или элементов) средствами Python'а?
for i in range(10): locals()['worksheet{}'.format(i)] = 'your worksheet'
Офлайн
RazorЕрунда какая-то,
Вся прелесть в том, что код и так в цикле, но вместо создания нового листа, он перезаписывает старый. В итоге, имеем последний записанный лист.
Офлайн
Budulianin
Лучше пользоваться openpyxl, так как , он кроме писать xlsx/xlsm, ещё и читать их умеет.
for i in range(10): workbook = xlsxwriter.Workbook('Total.xlsx') locals()['worksheet{}'.format(book)] = '{}'.format(i.string) """ Это тоже придется помечать locals """ worksheet.set_column('A:A', 7) # Ширина строки A worksheet.set_column('B:B', 70) # Ширина B worksheet.write('B1', i.string)
Офлайн
FishHook
Razor
Вся прелесть в том, что код и так в цикле, но вместо создания нового листа, он перезаписывает старый. В итоге, имеем последний записанный лист.
Ерунда какая-то,
ну ладно, добавляй листы в список,
плодить переменные это крайняя стадия дебилизма.
Офлайн
Razor
можете найти более изящное решения, избегая N-го количество переменных
sheets = list() for _ in xrange(100): sheets.add(workbook.add_worksheet())
Офлайн
FishHooksheets = list() for _ in xrange(100): sheets.add(workbook.add_worksheet())
Офлайн
append, естественно.
Офлайн