无法在目录中看到创建的.xlsx文件

时间:2016-06-10 14:57:28

标签: excel python-2.7 xlsxwriter

我已经生成了一些值,并使用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 移动selfself.workbook删除workbook会创建填充初始值的文件。

UPDATE2:按照建议以最小的方式复制了我的代码。这一个很好用!!!

1 个答案:

答案 0 :(得分:2)

尝试重现,文件创建得很好,也许你有self.Output_fold变量,或文件权限或代码编辑器的文件浏览器有问题。