LibXL:excel 跨表公式未更新

LibXL: excel cross-sheet formulas not updated

提问人:Davide 提问时间:5/31/2018 最后编辑:BoPDavide 更新时间:9/18/2023 访问量:1148

问:

我正在处理 Office365 的问题。 我使用 Office 365 创建了一个 Excel 文件:一个简单的公式,显示另一个工作表中单元格的内容。然后我继续通过 在该源单元格中写入一些东西。当我打开输出文件时,直到我按 .libXLlibXlCTRL+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):source sheet

这是不起作用的公式(用Excel编写):not working formula

C++ Excel Office365 libxl

评论

0赞 Redax 6/13/2018
这不是 Excel 设置,而是与新版 Excel 相关的 libXL 库中的错误。我有同样的问题,但我没有找到任何解决方法。还。我盯着赏金......
0赞 Large 6/4/2018
您是否在 Office 365 Excel 中开启了自动计算功能?查看此文章: support.office.com/en-ie/article/...我在为 Excel 创建的一些 vbs 脚本中被愚弄了,在某些 Office 365 安装中默认关闭计算。查看公式 -> 计算并检查那里的工作簿上是否所有内容都是自动的。编辑:请注意,我对 LibXL 的经验为零,但在 Excel 的 vbs 中有很多经验。我也编写 c++ 编程,但我发现 vbs 是一种更快的实现目标的方法
0赞 Tim Roberts 9/18/2023
这在 libXL 中并不大。事实上,libXL 对此绝对无能为力。如果您在执行“重新计算”后保存文件,您会看到它与重新计算之前完全相同。“问题”,如果你可以这样称呼它,是Excel。

答: 暂无答案