为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森栏 2023-06-20 13:55:32
我试图在使用 xlsxwriter 库创建 Excel 文件时插入宏。该文件已创建,但在尝试使用 Microsoft Excel 打开时,提示以下消息:Excel 无法打开文件,因为文件格式或文件扩展名无效。确认文件未损坏且文件扩展名与文件格式匹配。笔记:我在 Windows 10 上使用 Microsoft Office Excel 2007 (12.0.6425.1000) SP2 MSO 版本。使用 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()
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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


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)


输出:

//img1.sycdn.imooc.com//64913f7900012bd804580338.jpg

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

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


查看完整回答
反对 回复 2023-06-20
?
三国纷争

TA贡献1804条经验 获得超7个赞

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



查看完整回答
反对 回复 2023-06-20
?
jeck猫

TA贡献1909条经验 获得超7个赞

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



查看完整回答
反对 回复 2023-06-20
  • 3 回答
  • 0 关注
  • 329 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信