我已经生成了一些值,并使用Service.deleteAllItems()
将它们填充到电子表格中。我就这样做了:
xlsxwriter
现在,由于我必须进行多次写入,并添加了更复杂的逻辑,我决定引入另一个函数class main1():
.
.
.
.
def fun1():
workbook = xlsxwriter.Workbook(self.Output_fold+'Test'+time.strftime("%H_%M_%S_%d_%m_%Y")+'.xlsx')
worksheet_A = workbook.add_worksheet('Sheet_A')
.
.
worksheet_A.write(row,col,<val>)
.
.
workbook.close()
,它会相应地写入值。新逻辑需要在fun2
以及fun1
中生成值(通过调用另一个函数fun2
)。所以,我决定用fun3
替换变量workbook
等。我修改过的脚本如下所示:
main_file.py
self.workbook
libex.py
import xlsxwriter
import libex
import os
import time
import sys
import string
class main_cls():
def __init__(self):
self.i=0
self.t1=""
self.t2=""
pwd=os.getcwd().split('\\')
base='\\'.join(pwd[0:len(pwd)-1])+'\\'
print base
self.Output_fold=base+"Output\\"
self.Input_fold=base+"Input\\"
self.workbook=xlsxwriter.Workbook(self.Output_fold+'Test_'+time.strftime("%H_%M_%S_%d_%m_%Y")+'.xlsx')
self.worksheet_A = self.workbook.add_worksheet('Sheet_A')
self.worksheet_A.write(self.i,self.i,"Text 1")
self.worksheet_A.write(self.i,self.i+1,"Text 2")
self.i+=1
def fun1(self):
self.t1="1"
self.t2="2"
self.worksheet_A.write(self.i,self.i,self.t1)
self.worksheet_A.write(self.i,self.i+1,self.t2)
self.i+=1
self.eg=libex.exlib()
self.t1=self.eg.gen(0)
self.t2=self.eg.gen(0)
self.fun2()
self.workbook.close()
def fun2(self):
if option==1:
self.fun3()
def fun3(self):
self.t1=self.eg.gen(0)
self.t2=self.eg.gen(1)
self.worksheet_A.write(self.i,self.i,self.t1)
self.worksheet_A.write(self.i,self.i+1,self.t2)
self.i+=1
option=int(sys.argv[1])
if len(sys.argv)==2:
p=main_cls()
if option==1:
p.fun1()
else:
pass
else:
print "Wrong command"
现在,这适用于这种特殊情况,但在实际代码中,它并不适用。文件本身未在输出目录中创建。然后,我添加了以下行:
class exlib():
def __init__(self):
self.a="duh"
def gen(self,x):
if int(x)==0:
return(self.a)
elif int(x)==1:
self.a=str(self.a+" "+self.a+" "+self.a+" !!!")
return(self.a)
查看该文件是否已创建,并以令人惊讶的方式显示完整路径!
我在哪里可能会出错?如何解决此问题?
UPDATE1:我玩了一下,发现从 print "Workbook created at path : ",self.workbook.filename
移动self
到self.workbook
删除workbook
会创建填充初始值的文件。
UPDATE2:按照建议以最小的方式复制了我的代码。这一个很好用!!!
答案 0 :(得分:2)
尝试重现,文件创建得很好,也许你有self.Output_fold变量,或文件权限或代码编辑器的文件浏览器有问题。