首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibXL: excel交叉页公式未更新

LibXL: excel交叉页公式未更新
EN

Stack Overflow用户
提问于 2018-05-31 13:28:53
回答 2查看 868关注 0票数 30

我正在处理libXL和Office365的一个问题。我用Office 365创建了一个Excel文件:一个简单的公式,它显示来自另一个工作表的单元格的内容。然后,我通过libXl在源单元格中写了一些东西。打开输出文件时,在按CTRL+ALT+SHIFT+F9之前不会计算公式。

如果我从Office2013创建xlsx文件,则公式将被正确更新。

无论是否支持O365,在他们的网站上都找不到任何东西。

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

代码语言:javascript
复制
#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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-06-04 10:35:27

在Office 365 Excel中有自动计算吗?查看本文:toc305944076

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

检查公式化的->计算,检查那里的工作簿上是否所有东西都是自动的。

编辑:请注意,我没有使用LibXL的经验,但在Excel的vbs中有很多经验。我还编写了c++程序,但我发现vbs是实现项目目标的一种更快的方法:)

票数 0
EN

Stack Overflow用户

发布于 2021-09-19 23:37:55

这可能有助于将计算设置为

计算= xlCalculationAutomatic

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50625502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档