使用 Python 3 的 xlwings 问题
Posted
技术标签:
【中文标题】使用 Python 3 的 xlwings 问题【英文标题】:xlwings issue using Python 3 【发布时间】:2016-05-04 21:03:45 【问题描述】:我正在制作一个类似于数据库的 python 3 程序,它将tkinter
条目保存到一个 excel 文件中。我真的很喜欢使用xlwings
,所以请使用xlwings
找到解决方案。无论如何,这是问题:
from tkinter import *
import xlwings as xw
def save() :
entrylist = [entry1.get(), entry2.get(), entry3.get(), entry4.get(), entry5.get(),
entry6.get(), entry7.get(), entry8.get(), entry9.get()]
if len(entrylist[i]) != 0 and entry2.get() == entry3.get():
teller = int(xw.Range('M1').value) + 1
for i in range(0,3):
rowlist = ["A"+ str(teller), "B"+ str(teller), "C"+str(teller), "D"+str(teller)]
rowcode = "\'"+ rowlist[i] + "\'"
xw.Range(rowcode).value = entrylist[i]
xw.Range('M1').value = teller
wb.save('klantendatabase.xlsx')
现在的问题是下面这段代码是不允许的:
xw.Range(rowcode).value = entrylist[i]
仅允许这样(A1 是 excel 文件中的示例单元格编号)::
xw.Range('A1').value = entrylist[i]
有没有办法让xw.Range().value
接受一个变量?
【问题讨论】:
【参考方案1】:确保将您的服务设置为在 https 设置而不是 http 上运行。通常端口 8080 是最可靠的安全性。之后以调试模式运行您的代码并从您的源代码运行数据库差异。这应该处理所有日志消息。
【讨论】:
对不起,我不是这个意思。【参考方案2】:您不需要用引号将rowcode
括起来,它们已经是字符串。这有效:
import xlwings as xw
wb = xw.Workbook()
rowcode = 'A1'
xw.Range(rowcode).value = 'some value'
虽然在您的情况下使用这样的索引可能更容易:xw.Range((i,j)).value
【讨论】:
以上是关于使用 Python 3 的 xlwings 问题的主要内容,如果未能解决你的问题,请参考以下文章