Python:打开Excel工作簿(如果存在)或创建它
我正试图找到一个好方法,看看是否存在Excel电子表格,如果它确实使用了它,如果不创建一个新的Excel文件。请参阅下面的代码片段。奇怪的是每次我运行它,它在第一次尝试时就崩溃了。如果我再运行一次,它就会巡游过去。你知道为什么吗?我认为这与xlrd和xlwt有关,但还没有找到解决方案。所有模块都是最新的Python:打开Excel工作簿(如果存在)或创建它,python,python-3.x,xlrd,xlsxwriter,xlwt,Python,Python 3.x,Xlrd,Xlsxwriter,Xlwt,我正试图找到一个好方法,看看是否存在Excel电子表格,如果它确实使用了它,如果不创建一个新的Excel文件。请参阅下面的代码片段。奇怪的是每次我运行它,它在第一次尝试时就崩溃了。如果我再运行一次,它就会巡游过去。你知道为什么吗?我认为这与xlrd和xlwt有关,但还没有找到解决方案。所有模块都是最新的 import pandas as pd import xlsxwriter from xlrd import open_workbook import xlwt import os.path
import pandas as pd
import xlsxwriter
from xlrd import open_workbook
import xlwt
import os.path
fname=r'testmonthlyz.xlsm'
fname2=r'testmonthlyoutput2.xlsx'
#workbook = xlsxwriter.Workbook(fname2)
if os.path.isfile(fname2):
print('old file')
book=open_workbook(fname2)
else:
print('new file')
book=xlwt.Workbook(fname2)
ws = book.add_sheet('Tested')
sheet_names=book.sheet_names()
我认为崩溃的原因是,当您在
else
部分时,您有一行book=xlwt.Workbook(fname2)
,这意味着图书类型是Workbook
,它没有名为sheet\u names()的属性
使用if
中的book=open\u工作簿(fname2)
时,图书类型为book
,它具有sheet\u names()
属性。
我的解决办法虽然不是最好的办法,但我认为它会解决你正在处理的问题。。
更改以下行
import pandas as pd
import xlsxwriter
from xlrd import open_workbook
import xlwt
import os.path
fname=r'testmonthlyz.xlsm'
fname2=r'testmonthlyoutput2.xlsx'
workbook = xlsxwriter.Workbook(fname2)
if os.path.isfile(fname2):
print('old file')
book=open_workbook(fname2)
else:
print('new file')
workbook2=xlwt.Workbook(fname2)
ws = workbook2.add_sheet('Tested')
workbook2.save(fname2)
book = open_workbook(fname2)
sheet_names=book.sheet_names()
我认为崩溃的原因是,当您在else
部分时,您有一行book=xlwt.Workbook(fname2)
,这意味着图书类型是Workbook
,它没有名为sheet\u names()的属性
使用if
中的book=open\u工作簿(fname2)
时,图书类型为book
,它具有sheet\u names()
属性。
我的解决办法虽然不是最好的办法,但我认为它会解决你正在处理的问题。。
更改以下行
import pandas as pd
import xlsxwriter
from xlrd import open_workbook
import xlwt
import os.path
fname=r'testmonthlyz.xlsm'
fname2=r'testmonthlyoutput2.xlsx'
workbook = xlsxwriter.Workbook(fname2)
if os.path.isfile(fname2):
print('old file')
book=open_workbook(fname2)
else:
print('new file')
workbook2=xlwt.Workbook(fname2)
ws = workbook2.add_sheet('Tested')
workbook2.save(fname2)
book = open_workbook(fname2)
sheet_names=book.sheet_names()
workbook=xlsxwriter.workbook(fname2)
做什么?它用于程序的另一部分。谢谢你的帮助!workbook=xlsxwriter.workbook(fname2)
做什么?它用于程序的另一部分。谢谢你的帮助!我要试一试。谢谢你在这方面花时间。我会让你知道结果的!谢谢干得很好,我试试看。谢谢你在这方面花时间。我会让你知道结果的!谢谢工作得很好。