无法打开使用xlsxwriter文件扩展名无效

问题描述

使用xlsxwriter库创建excel文件时,我试图插入宏。我遵循了文档Working with VBA Macros中的教程示例。该文件已成功创建,但在使用Microsoft Excel打开时,提示以下消息:

Excel无法打开文件,因为文件格式或文件扩展名无效。确认文件未损坏,并且文件扩展名与文件格式匹配。

注意:

  1. 我正在Windows 10计算机上使用Microsoft Office Excel 2007(12.0.6425.1000)SP2 MSO版本打开文件,并提示上述消息。
  2. 打开Libreoffice很好,但是单击该按钮没有任何反应(因为它无法读取VBA)。

请帮助。

[更新]: 下面是我使用的代码

def action_macro_test(self):
        workbook = xlsxwriter.Workbook("/home/user1/Desktop/macro_test.xlsm")
        worksheet = workbook.add_worksheet("Sheet1")

        worksheet.set_column('A:A',30)

        # Add the VBA project binary.
        workbook.add_vba_project('./vbaProject.bin')

        # Show text for the end user.
        worksheet.write('A3','Press the button to say hello.')

        # Add a button tied to a macro in the VBA project.
        worksheet.insert_button('B3',{'macro':   'say_hello','caption': 'Say Hello!','width':   80,'height':  30})

        workbook.close()

解决方法

您使用宏创建了一个工作簿,但将其另存为lastrow。 Excel不允许.xlsx文件中的宏。它们必须为.xlsx

,

我运行了您的代码,仅修改了路径,它创建了一个按预期打开的文件:

import xlsxwriter

def action_macro_test(self):
        workbook = xlsxwriter.Workbook("macro_test.xlsm")
        worksheet = workbook.add_worksheet("Sheet1")

        worksheet.set_column('A:A',30)

        # Add the VBA project binary.
        workbook.add_vba_project('./vbaProject.bin')

        # Show text for the end user.
        worksheet.write('A3','Press the button to say hello.')

        # Add a button tied to a macro in the VBA project.
        worksheet.insert_button('B3',{'macro':   'say_hello','caption': 'Say Hello!','width':   80,'height':  30})

        workbook.close()

action_macro_test(None)

输出

enter image description here

我使用了XlsxWriter发行版的examples目录中的vbaProject.bin文件,并使用几种不同版本的Excel对其进行了测试。

可以,您可以在发行版的examples目录中尝试macros.py示例,看看是否适合您。之后,请确保您的示例中有一个有效的vbaProject.bin文件。

,

事实证明文件vbaProject.bin路径设置不正确。现在工作正常。对不起,误报警。谢谢你的帮助。