gpt4 book ai didi

c++ - LibXL:excel 跨表公式未更新

转载 作者:IT老高 更新时间:2023-10-28 22:15:29 24 4
gpt4 key购买 nike

我正在处理 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):/image/hp7Ti.png

这是无效的公式(用 Excel 编写):/image/BhGW2.png

谢谢

最佳答案

您是否在 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 是一种更快地实现我的项目目标的方法:)

关于c++ - LibXL:excel 跨表公式未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50625502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com