Xlsxwriter Python中的字符串变量
Posted
技术标签:
【中文标题】Xlsxwriter Python中的字符串变量【英文标题】:String variable in Xlsxwriter Python 【发布时间】:2016-05-23 00:49:00 【问题描述】:我是 python 的新手,我正在用 Tkinter 制作一个程序,它可以让我在另一个 excel 文件中写东西,而不必实际打开 Excel 文件。
在 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()
函数'create'是
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 and column = 0,但是我没有我在row = 1 and column = 0的输入框中写的名字。另外,创建的文件名只会保存为“2016”,而不是“ 2016" + str(name_get),我在输入框中写的值。
除此之外,程序没有任何错误
如何将输入框中的值写入excel文件?
另外,是否可以在 xlsxwriter 中创建 excel 文件(例如 .csv 文件)的扩展名?
非常感谢您阅读我的问题,我非常感谢您的建议!
【问题讨论】:
Button
有command=
所以你不需要bind
我不熟悉xlsxwriter
模块,但如果你尝试用str(type(name_get))
替换str(name_get)
,你会得到在excel 表中打印的对象类型。这是有用的信息,您可以使用它来搜索更多信息。
你必须在函数中使用name_entry.get()
。 name_get
无法按预期工作 - 它只保留在开始时执行的 name_entry.get()
返回的值(当 Entry
为空时)
【参考方案1】:
可能还有其他问题,但此行不正确:
workbook = xlsxwriter.Workbook(0, "2016" + str(name_get))
Workbook constructor takes the parameters:Workbook(filename[, options])
所以那行应该是:
workbook = xlsxwriter.Workbook("2016" + str(name_get))
另外,是否可以在 xlsxwriter 中创建 excel 文件(例如 .csv 文件)的扩展名?
没有。
XlsxWriter 仅创建 xlsx 文件,输出文件的文件扩展名应为.xlsx
,否则 Excel 在打开文件时会报错。
【讨论】:
【参考方案2】:如果我理解正确,您正在尝试将字符串变量传递给 worksheet.write 方法。
这可以使用worksheet.write_string()
方法来完成。
http://xlsxwriter.readthedocs.io/worksheet.html?highlight=write_string#write_string
例如。 -
name_entry = ''
worksheet.write_string(1,0, name_entry)
【讨论】:
以上是关于Xlsxwriter Python中的字符串变量的主要内容,如果未能解决你的问题,请参考以下文章
使用 python-xlsxwriter 或 bash 打开受密码保护的 ods 文件
如何强制Python XlsxWriter以自定义格式写入单元格
python xlsxwriter 在同一个单元格写入不同的格式文本