【问题标题】:LibXL: excel cross-sheet formulas not updatedLibXL:excel 跨表公式未更新
【发布时间】:2018-11-10 12:54:28
【问题描述】:

我正在处理 libXLOffice365 的问题。 我用 Office 365 创建了一个 Excel 文件:一个简单的公式,它显示另一个工作表中单元格的内容。然后我继续通过libXl 在那个源单元格中写一些东西。当我打开输出文件时,直到我按下 CTRL+ALT+SHIFT+F9 才会计算公式。

如果我从 Office 2013 创建 xlsx 文件,则公式会正确更新。

无论是否支持O365,都无法在他们的网站上找到任何内容。

这是重现问题的代码,(如果需要,我可以提供两个输入 xlsx 文件):

#include "stdafx.h"
#include "libxl.h"

using namespace libxl;

int main()
{   
    Book* book = xlCreateXMLBook();

    // xlsx file created by Office 2013
    if (book->load(L"office2013.xlsx"))
    {
        Sheet* sheet = book->getSheet(0);
        if (sheet)
            sheet->writeNum(2, 2, 42);

        book->save(L"okay.xlsx"); // works correctly when opened
    }

    // xlsx file created by O365
    if (book->load(L"office365.xlsx"))
    {
        Sheet* sheet = book->getSheet(0);
        if (sheet)
            sheet->writeNum(2, 2, 42);

        book->save(L"bugged.xlsx"); // must press CTRL+ALT+SHIFT+F9 to see '42' in the second sheet
    }
    
    book->release();
    
    return 0;
}

这是源表(上面代码写的42号):https://i.stack.imgur.com/hp7Ti.png

这是无效的公式(用 Excel 编写):https://i.stack.imgur.com/BhGW2.png

谢谢

【问题讨论】:

  • 不是Excel设置,而是新版Excel相关的libXL库的bug。我有同样的问题,但我没有找到任何解决方法。然而。我盯着赏金....

标签: c++ excel office365 libxl


【解决方案1】:

您是否在 Office 365 Excel 中启用了自动计算功能? 查看这篇文章:https://support.office.com/en-ie/article/change-formula-recalculation-iteration-or-precision-f38c7793-0367-41ce-b892-dfe54946bd76#__toc305944076

我为 Excel 创建的一些 vbs 脚本被愚弄了,某些 Office 365 安装默认关闭计算。

查看公式 -> 计算并检查那里的工作簿上的所有内容是否都是自动的。

编辑:请注意,我对 LibXL 的经验为零,但在 Excel 的 vbs 中经验丰富。我也编程 c++,但我发现 vbs 是实现我的项目目标的更快方法:)

【讨论】:

    【解决方案2】:

    这可能有助于在 with
    上设置计算 计算 = xlCalculationAutomatic

    然后在需要时使用 计算 = xlCalculationManual

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多