Python 到 excel,openpyxl 和文件格式无效
Python to excel, openpyxl and file format not valid
以下是打开 .xlsm 文件的简单代码段,使用 python 向其中写入一些值,然后保存。
import openpyxl
from openpyxl import load_workbook
def toExcel():
wb = load_workbook(filename="C:\Users\Mark\Documents\Test.xlsm")
ws = wb.worksheets[0]
ws.cell(row=1, column=1).value = 'foo'
ws['A2'] = 'bar'
wb.save("C:\Users\Mark\Documents\Test1.xlsm")
toExcel()
打开和保存文件时,提示文件格式无效/损坏,无法打开。如果从 wb.save 中删除 .xlsm,它将在选择 excel 和打开方式后保存并打开。为什么文件格式无效?
从这里开始:https://openpyxl.readthedocs.io/en/default/tutorial.html#saving-to-a-file
Note
The following will fail:
>>> wb = load_workbook('document.xlsx')
>>> # Need to save with the extension *.xlsx
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> # Need specify attribute keep_vba=True
>>> wb = load_workbook('document.xlsm')
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> wb = load_workbook('document.xltm', keep_vba=True)
>>> # If us need template document, then we need specify extension as *.xltm.
>>> # If us need document, then we need specify attribute as_template=False.
>>> wb.save('new_document.xlsm', as_template=True)
>>> # MS Excel can't open the document
我发现这个 post 因为我试图使用 openpyxl 从头开始创建一个 .xlsm
文件。我发现我收到此错误是因为当您加载工作簿时,您需要将 keep_vba=True
作为第二个参数传递给 load_workbook
函数。
所以这就是您的 load_workbook
函数的样子:
wb = load_workbook(filename="C:\Users\Mark\Documents\Test.xlsm", keep_vba=True)
作为旁注, 是我的 post,它讨论了使用 openpyxl 从头开始创建 .xlsm
文件。
以下是打开 .xlsm 文件的简单代码段,使用 python 向其中写入一些值,然后保存。
import openpyxl
from openpyxl import load_workbook
def toExcel():
wb = load_workbook(filename="C:\Users\Mark\Documents\Test.xlsm")
ws = wb.worksheets[0]
ws.cell(row=1, column=1).value = 'foo'
ws['A2'] = 'bar'
wb.save("C:\Users\Mark\Documents\Test1.xlsm")
toExcel()
打开和保存文件时,提示文件格式无效/损坏,无法打开。如果从 wb.save 中删除 .xlsm,它将在选择 excel 和打开方式后保存并打开。为什么文件格式无效?
从这里开始:https://openpyxl.readthedocs.io/en/default/tutorial.html#saving-to-a-file
Note
The following will fail:
>>> wb = load_workbook('document.xlsx')
>>> # Need to save with the extension *.xlsx
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> # Need specify attribute keep_vba=True
>>> wb = load_workbook('document.xlsm')
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> wb = load_workbook('document.xltm', keep_vba=True)
>>> # If us need template document, then we need specify extension as *.xltm.
>>> # If us need document, then we need specify attribute as_template=False.
>>> wb.save('new_document.xlsm', as_template=True)
>>> # MS Excel can't open the document
我发现这个 post 因为我试图使用 openpyxl 从头开始创建一个 .xlsm
文件。我发现我收到此错误是因为当您加载工作簿时,您需要将 keep_vba=True
作为第二个参数传递给 load_workbook
函数。
所以这就是您的 load_workbook
函数的样子:
wb = load_workbook(filename="C:\Users\Mark\Documents\Test.xlsm", keep_vba=True)
作为旁注,.xlsm
文件。