Spreadsheet Non-Native Dependency Recalculation Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Executing non-native functions within the runtime context of a spreadsheet application poses security risks and is computationally inefficient, especially when dealing with large data sets and requiring users to be proficient in unfamiliar programming environments.

Innovation Solution

The technology integrates non-native dependencies in a spreadsheet by identifying dependencies between cells containing non-native arguments and limiting recalculations accordingly, using static analysis to determine the scope of recalculation and enforcing an ordering scheme for non-native code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If non-native functions are executed within the runtime context of a spreadsheet application, then users can leverage tools provided by non-native environments for big data jobs, but security risks are introduced to the application and its general environment

Engineering Contradiction:
Improveintegration capabilityVSAvoidsecurity risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an intermediary layer that separates non-native code execution from the spreadsheet application's runtime context. A dependency service acts as a mediator, receiving requests from the spreadsheet application, analyzing dependencies in non-native code, and returning results without allowing direct execution within the application's security boundary. This resolves the contradiction by enabling integration capability through the intermediary while preventing security risks from propagating to the core application environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If non-native functions are integrated into spreadsheet application, then advanced libraries and tools can be used, but computational inefficiency increases when passing large data sets between spreadsheet and non-native resource

Engineering Contradiction:
Improvelibrary accessVSAvoidcomputational efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts the computationally intensive task of dependency analysis from the spreadsheet application and places it in a separate dependency service. By taking out the dependency analysis function, the system avoids the overhead of passing large data sets between the spreadsheet and non-native resources for dependency tracking, while still allowing library access. The service receives minimal request data, performs analysis, and returns results, improving computational efficiency while maintaining versatility.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If non-native code execution is enabled in spreadsheet, then user-defined functions can be created in non-native procedural languages, but users must be proficient with editing macros and configuring unfamiliar programming environment

Engineering Contradiction:
Improveprogramming language supportVSAvoiduser proficiency requirement
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements self-service by having the dependency service automatically analyze non-native code for dependencies without requiring user intervention. Instead of users manually configuring programming environments or editing macros to specify dependencies, the system autonomously parses the non-native code, identifies dependencies, and integrates them into the spreadsheet's dependency graph. This resolves the contradiction by maintaining programming language support while eliminating the need for users to be proficient with macro editing and environment configuration.

Inventive Principle:
Principle #25Self-service

4Measurement precision

If recalculation scope is expanded to include all cells with non-native arguments, then dependency accuracy is improved, but recalculation performance deteriorates

Engineering Contradiction:
Improvedependency tracking accuracyVSAvoidrecalculation speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies local quality by making the dependency analysis scope dynamic and localized rather than uniformly comprehensive. The dependency service analyzes only the specific non-native code relevant to the changed cell, not all non-native arguments in the spreadsheet. This localized approach maintains dependency tracking accuracy for affected areas while avoiding the performance penalty of analyzing the entire spreadsheet, thus resolving the contradiction between precision and speed.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12333241B2Integrating non-native dependencies in spreadsheet applications
Publication Date: 2025.06.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12333241B2 patent drawing
  • US12333241B2 patent drawing
  • US12333241B2 patent drawing

AI summary

Technology is disclosed herein for integrating native and non-native dependencies in a spreadsheet hosted by a spreadsheet application. In an implementation, a computing apparatus identifies a formula in a first cell of a spreadsheet which includes a non-native argument. The computing apparatus identifies a dependency between the first cell and a second cell created by the non-native argument. The computing apparatus limits recalculations of the spreadsheet based at least on the dependency. In an implementation, absent any other dependencies between the first cell and other cells, the first cell is excluded from recalculations triggered by changes to the other cells and included in recalculations triggered by the second cell. In an implementation, a direct or indirect dependency is created by, respectively, an explicit or implicit reference to the second cell in the non-native argument. In some implementations, the formula is native to the spreadsheet application hosting the spreadsheet.