使用 openpyxl 是否可以保留打印区域?

Using openpyxl is it possible to preserve the print area?

我使用以下方法将 pandas 数据帧写入预格式化的 excel 模板,然后用不同的名称保存:

def writer(self):
    '''
    Calls the excel writer function to create an object for writing out the
    report to excel. It loads an excel template, populates it and then
    saves the file. '''
    book = load_workbook(os.path.join(self.env.REPORT_TEMPLATE_PATH
                                      , self.env.REPORT_TEMPLATE))
    writer = pd.ExcelWriter(self.filename()
                            , engine='openpyxl')
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    return writer

命名范围用于避免断开链接。

我遇到的问题是 运行 输出的代码:

\Continuum\Anaconda3\lib\sitepackages\openpyxl\workbook\names\named_range.py:124: UserWarning: Discarded range with reserved name
warnings.warn("Discarded range with reserved name")

就结果而言,一切似乎都很好,但打印区域已重置。
有没有办法在新文件中保留模板中的打印区域?

有没有办法查看丢弃的内容?

这将在 openpyxl 2.4 后成为可能。在此发布之前,您必须手动重新创建打印设置。