Python 异常(';工作簿析构函数中捕获异常。工作簿可能需要显式关闭();

Python 异常(';工作簿析构函数中捕获异常。工作簿可能需要显式关闭();,python,xlsxwriter,Python,Xlsxwriter,我在Oracle Linux 6.6中运行Python程序时遇到以下异常。 我使用的是Python 2.6版 异常('工作簿析构函数中捕获异常。显式关闭() “工作簿可能需要。” 我的代码是: import warnings warnings.filterwarnings("ignore") import mysql.connector import smtplib import math #from xlrd import open_workbook import numbers, strin

我在Oracle Linux 6.6中运行Python程序时遇到以下异常。 我使用的是Python 2.6版

异常('工作簿析构函数中捕获异常。显式关闭() “工作簿可能需要。”

我的代码是:

import warnings
warnings.filterwarnings("ignore")
import mysql.connector
import smtplib
import math
#from xlrd import open_workbook
import numbers, string
import xlsxwriter
import string
import time
import base64
import subprocess
import os
import sys
import commands
import itertools
#import xlwt
import datetime as dt
import email.mime.application
from datetime import datetime
from datetime import datetime,timedelta, date
from email import Encoders
from tempfile import TemporaryFile
#from xlwt import Workbook, XFStyle, Borders, Pattern, Font
from email.MIMEMultipart import MIMEMultipart
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.MIMEText import MIMEText
from email.Utils import formatdate
import datetime
from xlsxwriter.workbook import Workbook
from xlsxwriter import Workbook   

curtme = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d_%H:%M:%S')
workbook = xlsxwriter.Workbook('/Export/Report_'+curtme+'.xlsx')
worksheet = workbook.add_worksheet()
completed_fmt = workbook.add_format({'bold': True, 'border': 6,'align': 'center','valign': 'vcenter','bg_color': 'yellow','font_size':'12', 'font_name':'Calibri'})
worksheet.set_column(0,9,36)
worksheet.merge_range('A2:C6',None, None)
worksheet.merge_range('A2:C6',None, None)
cellformat = workbook.add_format({'bold': True, 'border': 6,'align': 'center','valign': 'vcenter','font_size':'16', 'font_name':'Calibri'})
cellfmt = workbook.add_format({'bold': False, 'border': 6,'align': 'center','valign': 'vcenter','font_size':'12', 'font_name':'Calibri'})
worksheet.insert_image('A1', 'Image/logo.jpg')
worksheet.merge_range('B1:C6', "Report", cellformat)
    rowx = 6
    for colx, value in enumerate(headings):
            worksheet.write(rowx, colx, value, completed_fmt)
            i=1
            for i, row in enumerate(myresult):
                    for j, col in enumerate(row):
                            worksheet.write(i+7, j, col,cellfmt)
    workbook.close()
db.close()

异常表示可能需要使用
close()
。这是为了在隐式关闭不够的情况下捕获xlsxwriter异常

因为
close()

实际错误将在堆栈跟踪中位于其上方。一些潜在问题:

  • 压痕是错误的
  • 未定义标题
  • myresult
    未定义

  • 您在执行代码时打开了文件“/Export/Report”+curtme+'.xlsx”,因此它无法写入该文件,因为它已经打开了

    欢迎使用StackOverflow。当您的问题清晰简洁时,您将获得更好的结果。中列出了一些有用的提示。具体来说,对于python问题,相关的堆栈跟踪是极端的非常有帮助。此外,除非您的代码在导入时遇到问题,否则我们可能不需要您包含所有这些问题。最后,尤其是使用python,请确保您的代码格式正确。许多用户将跳过格式不好的问题,并帮助那些付出更多努力的用户。