找回密码
 立即注册

QQ登录

只需一步,快速开始

jin.ye

金牌服务用户

102

主题

213

帖子

849

积分

金牌服务用户

积分
849
jin.ye
金牌服务用户   /  发表于:2024-11-21 09:56  /   查看:180  /  回复:3
本帖最后由 jin.ye 于 2024-11-21 10:06 编辑

跨 workbook 的公式,是否可以针对性的不计算,客户无法把中间的一些文件上传上去,目前也不能全部迁移到线上


场景:
A用户在个人电脑上新建一个 test.xlsx 文件,链接了一个自己个人电脑上独有的外部链接公式
=SUMIF([test1.xlsx]测试1!$C$1C$15,B2)


public static void main(String[] args) {
    String path = "L:\\test.xlsx";
    FileOutputStream fos = null;
    try {
        Workbook workbook = new Workbook();
        workbook.open(path);
        
        fos = new FileOutputStream(path);
        workbook.calculate();
        workbook.save(fos);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (null != fos) {
            try {
                fos.close();
            } catch (Exception var2) {
            }
        }
    }
}



GC打开计算保存后,该外部链接公式单元格为 #VALUE!




SUMIF公式有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-11-21 16:43:58
沙发
您好,
问题收到,这边先与产品经理核对下信息,待有结果再贴中通知。
回复 使用道具 举报
JoeJin
超级版主   /  发表于:2024-11-26 09:38:52
板凳
本帖最后由 Lynn.Dou 于 2024-11-26 12:01 编辑

感谢反馈,已经作为需求,加入到 backlog list,我们后续会讨论如何实现以满足需求。(DOCXLS-11616)
回复 使用道具 举报
JoeJin
超级版主   /  发表于:2024-12-2 15:46:14
地板
GcExcel 有一个 option, DoNotRecalculateAfterOpened ,这个可以让公式再打开时,保留缓存的值,只要后续该公式引用的单元格没有变化,是不会计算的,可以在保存时保留缓存的结果。

  1. Workbook  wb = new Workbook();
  2. XlsxOpenOptions options = new XlsxOpenOptions();
  3. options.setDoNotRecalculateAfterOpened(true);
  4. wb.open("F:\\Book1.xlsx", options);
  5. wb.save("E:\\Book1_save.xlsx");
复制代码


请参考示例代码,验证一下该 option 能否解决问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部