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

我试图在使用 xlsxwriter 库创建 Excel 文件时插入宏。

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


森栏
浏览 330回答 3
3回答

猛跑小猪

我运行了你的代码,只修改了路径,它创建了一个按预期打开的文件:import xlsxwriterdef 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)输出:我使用了vbaProject.binXlsxWriter 发行版示例目录中的文件,并使用几个不同版本的 Excel 对其进行了测试。可以,您可以尝试macros.py发行版示例目录中的示例,看看它是否适合您。之后确保您vbaProject.bin的示例中有一个有效文件。

三国纷争

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

jeck猫

原来是文件vbaProject.bin路径设置不正确。现在工作正常。抱歉误报。谢谢您的帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python