使用xlsxwriter创建Excel文件的问题

-2 投票
2 回答
1208 浏览
提问于 2025-04-21 01:10

我刚开始学习Python,遇到了一些问题,下面是我的代码:

#modules

import time
import os
import xlsxwriter

#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')

#creatss a file for xls
def xl():
    xl =  cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "XL")

#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
    cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")
    #operations
    operation1010 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "1010")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "1010")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operation90247 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90247")
    #creates the xl workbook for ech file and writes in it get file,dir at the top of  colum A,C
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90247")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operation9969 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "9969")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "9969")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operation90665 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90665")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "90665")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operationmatchupzone = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "matchupzone")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + "matchupzone")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)

#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
    allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
    #operations
    operation5553 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "5553")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "5553")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operation8256 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "8256")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "8256")
    workbook = xlsxwriter.Workbook(' mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operationeberkiss = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "emberkiss")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "emberkiss")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operationlaguardia = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "laguardia")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "laguardia")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)
    operation1024 = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "1024")
    os.chdir(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + "1024")
    workbook = xlsxwriter.Workbook('mazehim.xlsx')
    worksheet = workbook.add_worksheet()
    bold = workbook.add_format({'bold': True})
    worksheet.write('A1', 'getfile', bold)
    worksheet.write('C1', 'dir', bold)

#calling the fenctions set above
cyberboad()
allrivers()
xl()

我知道这段代码写得不是很规范,它的功能是创建一个文件夹,然后在这个文件夹里用一个叫做 xlsxwriter 的模块创建一个Excel文件。

这个代码有时候能正常运行,但有时候又不行。我可能哪里做错了?

谢谢大家。

2 个回答

0
import time
import os
import xlsxwriter

#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')


#creatss a file for xls
def xl():
    os.makedirs(PATH + '\\' + DATE + '\\' + "XL")

#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
    cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")

    #operations
    for f in ["1010","90247","9969","90665","matchupzone"]:
        os.makedirs(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
        os.chdir(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
        workbook = xlsxwriter.Workbook('mazehim.xlsx')
        worksheet = workbook.add_worksheet()
        bold = workbook.add_format({'bold': True})
        worksheet.write('A1', 'getfile', bold)
        worksheet.write('C1', 'dir', bold)
        workbook.close()

#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
    allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
    #operations
    for f in ["5553","8256","emberkiss","laguardia","1024"]:
        os.makedirs(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
        os.chdir(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
        workbook = xlsxwriter.Workbook('mazehim.xlsx')
        worksheet = workbook.add_worksheet()
        bold = workbook.add_format({'bold': True})
        worksheet.write('A1', 'getfile', bold)
        worksheet.write('C1', 'dir', bold)
        workbook.close()

#calling the fenctions set above
cyberboad()
allrivers()
xl()

嘿,我想告诉你,代码现在按预期工作了,我对此很满意,谢谢你的帮助,祝你有个愉快的一天。 当然,上面的代码就是最终的成果。

1

这段代码可能有很多问题,很难一眼看出。以下是我注意到的几个问题:

  1. 你一直在重复创建你的 workbook 对象。 你应该只创建一次,然后一直使用同一个工作簿对象。
  2. 你忘记关闭工作簿了(在最后加上 workbook.close() 就可以了)。
  3. 我不确定你的 xl 是否按你想的那样工作。它只会创建一个“XL”文件夹。

请尝试简化代码,并更清楚地解释一下哪里出错了。
你可以试试这个简化的代码:

import time
import os
import xlsxwriter

#the path for where all the things the progrem these should happen
PATH = r"C:\status\status"
#gives you the date and time used for the name of the mother file
DATE = time.strftime('%d,%m')
workbook = xlsxwriter.Workbook('mazehim.xlsx')
bold = workbook.add_format({'bold': True})

#creatss a file for xls
def xl():
    os.makedirs(PATH + '\\' + DATE + '\\' + "XL")

#creatss the file tree for cyberboard with one file for ech opration and xl workbooks in ech file with oprations file
def cyberboad():
    cyberboad = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "CYBERBOARD")    

    #operations
    for f in ["1010","90247","9969","90665","matchupzone"]:
        os.makedirs(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
        os.chdir(PATH + '\\' + DATE + '\\' + "CYBERBOARD" + '\\' + f)
        worksheet = workbook.add_worksheet()
        worksheet.write('A1', 'getfile', bold)
        worksheet.write('C1', 'dir', bold)

#creatss the file tree for allrivers with one file for ech opration and xl workbooks in ech file with oprations file
def allrivers():
    allrivers = os.makedirs(r"C:\status\status" + '\\' + DATE + '\\' + "ALLRIVERS")
    #operations
    for f in ["5553","8256","emberkiss","laguardia","1024"]:
        os.makedirs(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)
        os.chdir(PATH + '\\' + DATE + '\\' + "ALLRIVERS" + '\\' + f)    
        worksheet = workbook.add_worksheet()    
        worksheet.write('A1', 'getfile', bold)
        worksheet.write('C1', 'dir', bold)

#calling the fenctions set above
cyberboad()
allrivers()
xl()

workbook.close()

撰写回答