繁体   English   中英

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

[英]Using xlsxwriter, Excel file cannot be opened. File extension is not valid

我试图在使用 xlsxwriter 库创建 Excel 文件时插入一个宏。 我遵循文档中的教程示例:使用 VBA 宏

该文件已创建,但在尝试使用 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()

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

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

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)

输出

在此处输入图片说明

我使用了位于 XlsxWriter 发行版示例目录中的vbaProject.bin文件,并使用多个不同版本的 Excel 对其进行了测试。

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

原来是文件 vbaProject.bin 路径设置不正确。 它现在工作正常。 抱歉误报。 谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM