簡體   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