Skip to main content
 首页 » 编程设计

python之Set_column 在手动激活每个单元格之前不起作用

2025年05月04日15JustinYoung

一直在努力让 set_column 继续工作。在让 Pandas 工作时遇到问题,所以一直在 xlsxwriter 中进行。现在正在使用: 'worksheet.set_column('D:D',None,format4)' - 这似乎只在我进入 xlsx 文件并实际激活“D”列中的每个单元格时才有效。有什么方法可以激活每个单元格,这样我就不必手动执行了吗?

提前致谢。

import xlsxwriter,os,sys,datetime 
now=datetime.datetime.now() 
def main(): 
    platform=sys.platform 
    if platform.find('win')>=0: 
        TheSlash='\\' 
    else: 
        TheSlash='/' 
    output = '%s-%s.xlsx' % ('XlsxSample',now.strftime("%m%d%Y-%H%M")) 
    workbook = xlsxwriter.Workbook(output, {'strings_to_numbers':True,'default_date_format':'mm/dd/yy hh:mm'}) 
    worksheet = workbook.add_worksheet() 
    count=0 
    counter=0 
    format=workbook.add_format({'font_size':'8','border':True}) 
    formatdict={'num_format':'mm/dd/yy hh:mm'} 
    format4=workbook.add_format(formatdict) 
    cur =('Pole1','33.62283963','-90.54639967','4/20/16 11:43','-90.54640226','33.62116957','5207069','25-04','50','3','PRIMARY','PGC') 
    for name in cur: 
        worksheet.write(counter, count, name,format) 
        count+=1 
    counter+=1 
    worksheet.set_column('D:D',None,format4) 
    workbook.close() 
if __name__ == "__main__": 
    main() 

如上所述 - 日期格式似乎只有在您使用光标进入“D”单元格本身时才会激活。

请您参考如下方法:

列日期格式未显示在列单元格中的原因是程序在此处用单元格格式覆盖了它:

for name in cur: 
    worksheet.write(counter, count, name,format) 
    count+=1 

在 XlsxWriter 中,与在 Excel 中一样,单元格格式会覆盖列格式。

如果您希望单元格或列格式是 2 种组合格式的结果,您需要创建一种新格式来组合这些格式并将其应用于单元格或列。

更新:另外,我刚刚注意到您在 D 列中写了一个字符串。Excel 中的日期是格式化的数字。这可能就是为什么您在按回车键时会看到单元格数据发生变化的原因。 Excel 正在将类似日期的字符串转换为显示为日期的格式化数字。在 XlsxWriter 中,您需要进行转换。查看Working with Dates and Time XlsxWriter 文档的一部分。