2016-02-12 4 views
4

Я как бы новичок в python, и я делал программу с Tkinter, которая позволяла мне писать вещи в другом файле excel, фактически не открывая файл Excel.Строковая переменная в Xlsxwriter Python

От tkinter я добавил поле ввода, в котором мне нужно было бы написать значение, и кнопку, которая будет использовать xlsxwriter для записи значения в формате excel.

Я попытался

name_entry = StringVar() 
    name_get = name_entry.get() 
    e1 = Entry(root, textvariable = name_entry) 
    b1 = Button(root, text = "Create") 
    e1.pack() 
    b1.bind("<Button-1>", create) 
    b1.pack() 

функцию «создать» является

def create(event): 
     workbook = xlsxwriter.Workbook(0, "2016" + str(name_get)) 
     worksheet = workbook.add_worksheet() 
     worksheet.write(0, 0, 'name') 
     worksheet.write(1, 0, str(name_get)) 
     workbook.close 

Когда я запускаю программу и написать что-то в записи и нажмите кнопку (b1), файл Excel что он создает только имя «name», написанное в row = 0 и column = 0, но у меня нет имени, которое я написал в поле ввода в строке = 1 и в столбце = 0. Кроме того, имя созданного файл будет сохранен только как «2016», а не «2016» + str (name_get), значение что я написал в поле ввода.

Кроме того, программа не имеет каких-либо ошибок

Как я значение, записанное в поле ввода нужно записать в файл Excel?

Кроме того, возможно ли создать расширение файла excel (например, CSV-файл) в xlsxwriter?

Огромное спасибо за то, что вы прочитали мой вопрос, и я по-настоящему ценю некоторые советы!

+0

'Button' имеет команду' = ', так что вам не нужно' bind' – furas

+0

Я не знаком с 'модулем xlsxwriter', но, может быть, если вы пытаетесь заменить' Str (name_get) '' по str (type (name_get)) 'вы получите тип объекта, напечатанного на листе excel.Это полезная информация, которую вы можете использовать для поиска некоторой информации. – SebasSBM

+0

вы должны использовать функцию 'name_entry.get()' в функции. 'name_get' не работает так, как вы ожидаете - он сохраняет только значение, возвращаемое' name_entry.get() ', выполненное при запуске (когда' Entry' пуст) – furas

ответ

0

Там могут быть и другие вопросы, но эта линия не является правильным:

workbook = xlsxwriter.Workbook(0, "2016" + str(name_get)) 

Workbook constructor takes the parameters:Workbook(filename[, options])

Так что линия должна, вероятно, будет:

workbook = xlsxwriter.Workbook("2016" + str(name_get)) 

Кроме того, это возможно ли создать расширение файла excel (например, CSV-файл, например) в xlsxwriter?

No.

XlsxWriter только создает XLSX файлы и расширение файла на выходной файл должен быть .xlsx или Excel будет жаловаться, когда он открывает файл.

Смежные вопросы