Sheet data processing method, apparatus, computer equipment, and storage medium

By using a calculation engine to process sheet data incrementally and update only changed data items, the method addresses long calculation times and high memory usage, enhancing efficiency and user experience.

JP2026103862APending Publication Date: 2026-06-24BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
BEIJING ZITIAO NETWORK TECH CO LTD
Filing Date
2025-12-11
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Existing sheet data processing methods face challenges with long calculation times and high memory usage due to increasing complexity and number of formulas, affecting overall response efficiency and user experience.

Method used

Introduce a calculation engine to process data and formulas incrementally, identifying affected data lists, calculating only those lists, and updating changed data items, utilizing the computational power of the calculation engine to improve efficiency and reduce resource usage.

Benefits of technology

This approach significantly improves computational performance, reduces recalculation range, and enhances user experience by minimizing resource usage and response time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026103862000001_ABST
    Figure 2026103862000001_ABST
Patent Text Reader

Abstract

The present invention provides sheet data processing methods, apparatus, computer equipment, and storage media. [Solution] The sheet data processing method (200) acquires input data in the sheet, identifies at least one calculation formula affected by the input data (202), identifies the underlying data corresponding to the calculation formula using the node backend service, writes the input data and underlying data to the calculation engine (204), uses the node backend service to identify the data list affected by the calculation formula, transfers the calculation formula to the calculation engine to calculate the data list and generate a calculation result (206), identifies the data items in the data list that have changed after the calculation based on the calculation result, updates the data for the data items (208), and displays the updated data list on the sheet (210).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular, to a sheet data processing method, apparatus, computer device, and storage medium.

Background Art

[0002] In the current service field, after obtaining one piece of data in a sheet, it is necessary to update some existing data. For example, when new sales are input, daily sales, monthly sales, profit rate, etc. are affected, and data update is required. The affected data is usually calculated using corresponding calculation formulas.

[0003] In some scenarios, as the number of formulas involved in calculations increases and the complexity of the formulas increases, problems such as long calculation times and high memory usage gradually become prominent, affecting the overall response efficiency and calculation costs, etc., and seriously affecting the user experience.

Summary of the Invention

[0004] In view of this, the present disclosure provides a sheet data processing method, apparatus, computer device, and storage medium for solving the above problems or some of them.

[0005] Based on the above objectives, a first aspect of the present disclosure is a sheet data processing method, obtaining input data in a sheet and identifying at least one calculation formula affected by the input data; identifying basic data corresponding to the calculation formula by a node backend service, and writing the input data and the basic data into a calculation engine; using the node backend service to identify a data list affected by the calculation formula, transferring the calculation formula to the calculation engine to calculate the data list, and generating a calculation result; Based on the calculation results, identify the data items in the data list that have changed since the calculation, and update the data for those data items. Display the updated data list on the sheet, Includes.

[0006] A second aspect of this disclosure is a sheet data processing device, A first module retrieves input data from a sheet and identifies at least one formula affected by the input data, A node backend service identifies the underlying data corresponding to the calculation formula, and a second module writes the input data and underlying data to the calculation engine. A third module uses a node backend service to identify the data list affected by the calculation formula, transfers the calculation formula to the calculation engine to calculate the data list, and generates the calculation result. A fourth module identifies data items in the data list that have changed after the calculation based on the calculation results, and updates the data for those data items. A fifth module that displays the updated data list on the sheet, Includes.

[0007] A third aspect of this disclosure is a computer device comprising memory, a processor, and a computer program stored in memory and executable by the processor, wherein the processor implements the method of the first aspect when executing the program.

[0008] A fourth aspect of this disclosure provides a non-temporary computer-readable storage medium for storing computer instructions for causing a computer to perform the method described in the first aspect.

[0009] As can be seen from the above, the sheet data processing method, apparatus, computer equipment, and storage medium provided in this disclosure, when it is necessary to perform calculations using a node backend service, introduce a calculation engine, transfer the data and calculation formulas that need to be calculated to the calculation engine, and perform the calculation of the formulas through the calculation engine. At the same time, it identifies the data list affected by the calculation formula and calculates only that data list, thereby achieving calculations based solely on incremental steps. After the calculation of the data list is completed, it compares the data items in the data list before and after the calculation, identifies the changed data items, and finally updates the data list by updating only the changed data items, thereby quickly completing the update of the data list. In this way, by utilizing the computational power of the calculation engine, the computational performance of the calculation formulas is greatly improved, and the incremental calculation method and update based on difference comparison of results reduce the range of recalculation after new input data is acquired and the range of final data updates, further improving computational efficiency and reducing resource usage. Ultimately, this results in improved overall response efficiency, reduced costs, and a significantly improved user experience. [Brief explanation of the drawing]

[0010] To more clearly explain the technical concepts in the embodiments or related technologies of this disclosure, the following is a brief introduction of the drawings necessary for describing the embodiments or related technologies. Needless to say, the drawings described below are only those relating to embodiments of this disclosure, and those skilled in the art can obtain other drawings from these without requiring any creative effort.

[0011] [Figure 1] A schematic diagram of an exemplary system 100 according to an embodiment of the present disclosure is shown. [Figure 2] A schematic flowchart of exemplary method 200 according to the embodiments of this disclosure is shown. [Figure 3] A schematic diagram of an exemplary apparatus 300 according to an embodiment of the present disclosure is shown. [Figure 4]A schematic diagram of an exemplary computer device 400 according to an embodiment of the present disclosure is shown. [Modes for carrying out the invention]

[0012] To further clarify the purpose, technical proposals, and advantages of this specification, this specification will be described in more detail below with reference to the drawings and using specific examples.

[0013] Unless otherwise defined, technical or scientific terms used in the embodiments of this disclosure have the general meanings understood by a person of ordinary skill in the art to which this disclosure pertains. The terms “First,” “Second,” and similar terms used in the embodiments of this disclosure do not indicate any order, quantity, or importance, but are used solely to distinguish different components. Similar terms such as “includes” or “comes with” mean that the listed elements or articles and their equivalents are included, and do not exclude other elements or articles. Similar terms such as “connected” or “connected” may include direct or indirect electrical connections, not limited to physical or mechanical connections. Terms such as “up,” “down,” “left,” and “right” are used solely to indicate relative positions, and if the absolute position of the described object changes, its relative position may change accordingly.

[0014] It should be understood that, before using any of the technical proposals disclosed in each embodiment of this disclosure, it is necessary to notify the user in an appropriate manner in accordance with applicable laws and regulations about the type of personal information related to this disclosure, the scope of use, and the usage scenarios, and to obtain the user's permission.

[0015] For example, in response to receiving an active request from a user, prompt information is sent to the user, clearly informing the user that the acquisition and use of the personal information are necessary for the execution of the requested operation. Thereby, based on the prompt information, the user can choose, at their own discretion, whether to provide personal information to software or hardware such as an electronic device, an application, a server, or a storage medium that executes the operations of the technical solution of the present disclosure.

[0016] As an optional but non-limiting embodiment, in response to receiving an active request from a user, the prompt information may be sent to the user in the form of, for example, a pop-up window. The prompt information may be displayed in text form in the pop-up window. Further, a selection control for the user to select whether to "agree" or "disagree" to provide personal information to the electronic device may be further displayed in the pop-up window.

[0017] It should be understood that the above notification and user permission acquisition process are merely exemplary and do not limit the embodiments of the present disclosure. Other forms that meet the relevant laws or regulations are also applicable to the embodiments of the present disclosure.

[0018] It should be understood that the data related to the technical solution of the present disclosure (including the data itself, the acquisition or use of data, but not limited thereto) needs to comply with the requirements of the corresponding laws, regulations, and related provisions.

[0019] To make the objectives, technical solutions, and advantages of this specification clearer, the following will further describe this specification in more detail with reference to the drawings using specific embodiments.

[0020] FIG. 1 shows a schematic diagram of an exemplary system 100 according to an embodiment of the present disclosure. The system 100 may be a system for realizing corresponding sheet data processing.

[0021] As shown in FIG. 1, taking an object display method commonly executed by a terminal device and a server as an example, the system 100 may include a terminal device 102, a server 104, and a database server 106. The terminal device 102 and the server 104 are connected via a network, for example, a wired or wireless network. As an example, a device for realizing sheet data processing may be integrated into the terminal device 102. The database server 106 and the server 104 are connected via a network, for example, a wired or wireless network. The database server 106 may store various data related to the execution of the data processing method, such as calculation formulas, corresponding basic data, data lists, and the like.

[0022] Various applications (Application, APP, abbreviation: app), such as image processing applications, video conferencing applications, life service applications, reading applications, video applications, social applications, payment applications, web browsers, and instant messaging tools, may be installed on the terminal device 102. Any of these applications may be used for input of input data or display of a data list (before or after update). As an example, an application (APP) installed on the terminal device 102 may be downloaded and installed from the server 104.

[0023] The terminal device 102 here may be hardware or software. If the terminal device 102 is hardware, it may be various electronic devices equipped with a display, including but not limited to smartphones, tablets, e-readers, MP3 players, laptop computers, and desktop computers (PCs). If the terminal device 102 is software, it may be installed on any of the electronic devices listed above. It may be implemented as multiple software or software modules (for example, for providing distributed services), or as a single software or software module. There are no particular limitations here.

[0024] Server 104 may be a server that provides various services, for example, a backend server that supports various applications displayed on terminal device 102. Database server 106 may also be a database server that provides various services. It should be understood that if server 104 can implement the related functions of database server 106, then database server 106 does not need to be provided in system 100.

[0025] Server 104 and database server 106 here may also be hardware or software. If hardware, they may be implemented as a distributed server cluster consisting of multiple servers, or as a single server. If software, they may be implemented as multiple software or software modules (for example, for providing distributed services), or as a single software or software module. There are no particular limitations.

[0026] The sheet data processing method according to the embodiment of this disclosure may be executed by system 100. Specifically, it may be executed by the cooperation of terminal device 102, server 104, and database server 106. It should be understood that the sheet data processing method may be executed by terminal device 102 alone if terminal device 102 has the functions necessary for server 104 and database server 106 to execute the sheet data processing method. It should be understood that the number of terminal devices 102, server 104, database server 106, and users 108 in Figure 1 are merely examples. Any number of terminal devices, users, servers, and database servers may be provided according to actual needs.

[0027] In an exemplary application scenario, user 108 inputs or enters input data via terminal device 102, and server 104 executes a sheet data processing method based on this input data and provides the corresponding sheet data processing service to user 108. The operation interface and results of the sheet data processing service (e.g., an updated data list) may be displayed on a page by terminal device 102.

[0028] As explained in the background technology section, in some examples, the Node backend service may be used to perform computation of mathematical formulas. In some specific scenarios, the Node backend service may be a Node.js backend service. However, as the complexity of the data increases and the amount of computation increases, the Node backend service, being a single-threaded computation service in this application, is not very suitable for CPU-intensive computation scenarios. In situations with a large amount of computation, performance problems such as longer computation times and higher memory usage occur, requiring some adjustment.

[0029] Accordingly, based on the actual situation described above, the embodiments of this disclosure provide a sheet data processing method. When it is necessary to perform calculations using a node backend service, the sheet data processing method introduces a calculation engine, transfers the data and calculation formulas that need to be calculated to the calculation engine, performs the calculation of the formulas through the calculation engine, identifies the data list affected by the calculation formulas, and calculates only that data list, thereby achieving calculations based solely on incremental processing. After the calculation of the data list is completed, the data items in the data list before and after the calculation are compared to identify the data items that have been changed, and finally, the data is updated only for the data items that have been changed, thereby quickly completing the update of the data list. In this way, by utilizing the computational power of the calculation engine, the computational performance of the calculation formulas is greatly improved, and the incremental calculation method and update based on difference comparison of results reduce the range of recalculation after new input data is acquired and the range of final data updates, further improving computation efficiency and reducing resource usage. Ultimately, this results in improved overall response efficiency, reduced costs, and a significantly improved user experience.

[0030] Figure 2 shows a schematic flowchart of an exemplary method 200 according to an embodiment of the present disclosure. For example, this method 200 may be used to process sheet data and can provide a rapid response and improve overall efficiency, particularly in node backend service scenarios. This method 200 may be performed by the terminal device 102 in Figure 1 or by the system 100 in Figure 1.

[0031] As shown in Figure 2, the sheet data processing method according to the embodiment of this disclosure may specifically include the following steps.

[0032] In step 202, the input data in the sheet is retrieved, and at least one formula affected by the input data is identified.

[0033] In this step, the sheet may be a sheet file for data recording, and may contain multiple types of data. The input data may be data entered into a specific item or column within the sheet. The input data may also be entered by the user via a corresponding window, entered in bulk using a sheet, or automatically acquired by the system based on settings. For example, in a sales scenario, the sheet may be used to calculate and record sales statistics and related data. The input data may be newly added sales data. Of course, this sales data may be newly generated in real time, or it may be unrecorded data discovered during verification. After acquiring the input data, it may be stored directly in the database. At the same time, attributes and labels attached to the input data when it is entered can be used to identify corresponding relationships, such as data or formulas affected by that input data. As a more specific example, when certain sales data is entered, data such as daily sales, monthly sales, and profit margins may be affected based on pre-configured settings. At the same time, each data has its own corresponding formula set. Therefore, after entering the input data, it is possible to identify the formulas that are affected based on that input data.

[0034] In step 204, the node backend service identifies the underlying data corresponding to the calculation formula and writes the input data and the underlying data to the calculation engine.

[0035] In this step, for example, the node backend service may be a Node.js-based backend service. A Node.js-based backend service is a service built on the Node.js platform and can handle HTTP requests and responses, interact with databases, and provide an API (application programming interface) for reading data from the frontend. By using the node backend service, the underlying data used in calculation formulas can be identified from the database. For example, in the case of calculation formulas corresponding to daily or monthly sales in the example above, the underlying data may be total sales data for a particular day or month. The input data and underlying data may then be written to a structure for subsequent calculation or recalculation of the calculation formula. In this proposed technology, in addition to the node backend service, a calculation engine that performs the calculation processing of specific calculation formulas may be introduced. For example, a Rust calculation engine may be used to perform the calculation of the corresponding calculation formula and write the data to the Rust calculation engine. The input data here may be treated as part of the underlying data in the database and written together with the underlying data.

[0036] The Rust Computation Engine is one of the data processing engines created using Rust. Rust is a systems programming language that emphasizes safety, concurrency, and performance. The Rust Computation Engine has direct access to hardware resources and no runtime or garbage collection overhead, so its performance is close to that of C and C++. Furthermore, Rust provides strong support for concurrent programming, enabling developers to write code that runs efficiently on multicore processors. Data races and other concurrency problems can be avoided through immutable sharing, mutable borrowing, and sending / syncing traits. Therefore, by using the Rust Computation Engine, concurrent and asynchronous data processing can be achieved, improving data processing capabilities.

[0037] As the complexity of calculation formulas increases and the amount of associated underlying data grows, direct operations such as copying and writing the data itself inevitably lead to the occupation of system resources, resulting in increased processing time and memory usage. Therefore, in some cases, the node backend service may transfer the data in its native binary format by directly notifying the calculation engine of the storage location of the native binary data of the input and underlying data, without performing any further processing (e.g., reading or interpreting). Specifically, the node backend service notifies the calculation engine of the storage location of the native binary data of the input and underlying data in the form of pointers. In a normal process, the node backend service would find the data location according to these pointers and read the data. However, in this example, no further processing is performed on these pointers; they are simply notified to the calculation engine. When the calculation engine calculates a formula, it can directly find the corresponding native binary data according to the pointers. This creates a different data copy for each calculation formula, pointing to the original data in the database. Therefore, calculation formulas are processed asynchronously without affecting each other, and only pointer transfers occur, improving the response speed of data processing. In other words, in some examples, writing the input data and the underlying data to the computing engine involves locating the storage location of the native binary data of the input data and the underlying data, and transferring the storage location to the computing engine in the form of a pointer, so that the computing engine can find the native binary data corresponding to the required data based on the corresponding pointer.

[0038] Furthermore, to facilitate data retrieval, in some examples, input data and underlying data may be synchronously written to a base storage block for storing the results of the calculation formula. In some examples, this base storage block may also be Base Storage. In a typical calculation process for a formula, the base storage block is usually used to store data that does not change during the calculation of the formula, such as user-entered variables, weight parameters in the formula, and some constants. The calculation process is then performed in the data block. In some examples, the data block may also be Data Chunk. The calculation results may be temporarily stored in the data block. When the base storage block is modified, the data block is cleared. Therefore, whenever the data or the original data is modified, the data block is cleared, which triggers a complete recalculation of the formula.

[0039] In step 206, the node backend service identifies the data list affected by the calculation formula, transfers the calculation formula to the calculation engine to calculate the data list, and generates the calculation result.

[0040] In this step, when one specific piece of data is stored, other information may also be stored along with it. For example, when daily sales data is stored, other information such as date and time information and employee information may also be recorded. Therefore, the data generally exists in sheet format. Accordingly, in this proposed technique, the node backend service may first identify the list of specific data affected from the corresponding storage file based on a calculation formula. Specifically, it identifies which columns of data within the sheet need to be recalculated, rather than recalculating the entire sheet. In other words, it is understood that only incremental calculations are performed.

[0041] In a specific scenario, the applicant statistically calculated the time required for a 600,000-cell database write link, and also statistically calculated the percentage of data change before and after the database write. As can be seen from the statistical results, a 600,000-cell database write link takes approximately 115 seconds, which is limited by the current database write capacity, such as the write performance of the underlying relational database. Furthermore, in most actual calculation formula scenarios, the percentage of calculation results that do not change after recalculation is 90% or more. Therefore, by removing the calculation results of calculation formulas that do not change before writing to the database, the time required for the database write link can be reduced. In order to remove the parts of the calculation formula whose results do not change, this technical proposal removes parts that are unaffected or unchanged by using incremental calculation in this step and the comparison method of the difference in results before and after calculation performed in step 208.

[0042] In this example, after identifying the affected data list, the calculation formula may be transferred to the calculation engine, which then recalculates the data in the data list to generate the calculation result. In this process, to facilitate comparison of the data in the data list in subsequent steps, the data in the data list may be stored before calculation, and the recalculation may be performed after storage is complete. For example, one data list may be used to record specific values ​​of daily sales. To facilitate data management, daily sales are usually recorded not only for one day, but also for one month, one year, or more. After new input data is entered, it may affect only the data of one data item in the data list, requiring the identification process in step 208. For this reason, the data in the current data list may be recorded before recalculating the data in the data list. In a more specific example, the list data before calculation may be stored in a base storage block to form comparison data. At the same time, in order to store this comparison data through the base storage block, a data structure indicating the calculation status of each row of the calculation formula may be added to its structure and used to store the comparison data.

[0043] In other words, in some examples, transferring the calculation formula to the calculation engine and calculating the data list includes storing the data of the data list before calculation in the base storage block to form comparison data, and reading the input data and the base data from the base storage block, recalculating the data list using the calculation formula to generate calculated data. In addition, to store the comparison data, a data structure indicating the calculation status of each row of the calculation formula may be added to the base storage block. Here, as mentioned above, the calculation process of the calculation formula is usually performed in a data block, and since the data block is cleared whenever it changes, data cannot be stored directly in the data block. Therefore, a new data structure may be created in the base storage block, and the comparison data may be stored using this new data structure. Subsequently, the data may be recalculated in the data block to generate calculated data, and the calculated data may be sent to the base storage block to compare the comparison data with the calculated data.

[0044] In some cases, the formula being applied may contain sub-expressions at multiple levels. For example, in the formula F1 = F2 + F3 + C, to calculate formula F1, it is first necessary to calculate formulas F2 and F3. Here, formulas F2 and F3 are treated as sub-expressions at one level of formula F1. This means that when transferring the formula to the computation engine for calculation, its structure may first be analyzed to identify at least one level of sub-expressions it contains, a topological sequence graph may be created based on their level relationships, and the formula may be transferred to the computation engine in the form of a topological sequence graph. This allows the computation engine to identify the before-and-after calculation relationships between the multiple levels of formulas according to the topological sequence graph and perform calculations step by step. For sub-expressions at the same level, computation efficiency can be improved by performing synchronous calculations using multithreading. In other words, in some examples, transferring the formula to the calculation engine to calculate the data list includes analyzing the formula to identify at least one level of sub-formulas contained in the formula, creating a topological sequence graph of the formula based on the at least one level of sub-formulas, and transferring the formula to the calculation engine in the form of the topological sequence graph, and having the calculation engine perform calculations sequentially based on the topological sequence graph.

[0045] Furthermore, in the example of the calculation formula F1 = F2 + F3 + C mentioned above, in the node backend service, it is possible to divide the calculation formula only at the formula level, and the more detailed underlying data field C included therein is calculated only when the F1 formula is calculated. Here, the underlying data field C is understood to be several constant terms or hyperparameters calculated using only simple underlying data. The computational complexity of the underlying data field C itself varies depending on the scenario and can therefore have some impact on computational efficiency. Thus, since the calculation engine can theoretically grasp more formulas and details of the execution process, in the above example, the underlying data field C in the calculation formula F1 may be identified and treated as a sub-expression at least at one level before calculation. Then, the topology sequence graph can be updated based on this, and the calculation can be performed according to the updated topology sequence graph to further improve computational efficiency. For example, in the calculation formula F1 = F2 + F3 + C, the underlying data field C may also be calculated when calculating the sub-expressions at the level to which F2 and F3 belong. In other words, in some examples, after the formula has been transferred to the calculation engine in the form of the topology sequence graph, the method further includes the calculation engine analyzing the formula corresponding to the topology sequence graph to determine whether or not it includes an underlying data field, and in response to the inclusion of the underlying data field, treating the underlying data field as a sub-expression at the at least one level and updating the topology sequence graph.

[0046] In some examples, calculation formulas sent from the node backend service may be compiled into a corresponding Abstract Syntax Tree (AST) so that they can be easily understood by the computation engine, and the calculation formulas may be transferred to the computation engine in the form of the Abstract Syntax Tree. Specifically, for a single calculation formula, the formula is compiled at the node backend service stage, and the Abstract Syntax Tree is generated by calling the corresponding editor to compile it. Then, a JSON structure describing each node of the Abstract Syntax Tree is generated using the serialization logic of the Abstract Syntax Tree. Finally, this JSON structure is transferred to the computation engine. The computation engine parses this JSON structure and expands the corresponding calculation formula. In other words, in some examples, transferring the calculation formula to the computation engine to compute the data list includes compiling the calculation formula into a corresponding Abstract Syntax Tree according to the format requirements of the computation engine, and transferring the Abstract Syntax Tree to the computation engine.

[0047] In step 208, based on the calculation results, the data items in the data list that have changed since the calculation are identified, and the data for those data items is updated.

[0048] In this step, based on the information described and calculated in step 206, the calculation engine calculates new calculation results for the data list, i.e., calculated data. Subsequently, by identifying the data items in the data list that have changed after the calculation, the changed items in the data list can be identified, and the data can be updated only for those changed items and their associated data.

[0049] Referring to the example above, if we use a data list of daily sales figures as an example, the data list contains daily sales data for multiple days, and the new input data corresponds to the daily sales data for only one day, it may only affect one data item in the data list. Therefore, by comparing the data list before and after the calculation, we can identify the changed item, update only that data item, and leave the other items unprocessed, thereby further improving data processing speed.

[0050] Of course, in specific application scenarios, the specific structure used for comparison may differ depending on the fields and data. For example, when comparing hyperlinks, you could compare the IUrlSegment field within a specific cell on the sheet. When comparing geographic information fields, you could compare fields such as {locations: {poiInfo: IPoiInfo;}[];} within a specific cell on the sheet.

[0051] Finally, referring to the example above, the process of identifying the data items in the data list that have changed before and after the calculation involves comparing the comparison data with the calculation data, identifying the changed items as the data items, and updating the data items.

[0052] In step 210, the updated data list is displayed on the sheet.

[0053] In this step, after the data list update is complete, it may be output in a display format. Specifically, the updated data list may be displayed on a sheet. Of course, the updated data list or sheet may be displayed to the current operator or stored. That is, the updated data list or sheet may be displayed and output to the corresponding device, providing corresponding feedback to the operator. Of course, in some other examples, the output method of the updated data list or sheet is not limited to display output, but can also be stored, displayed, used, or reprocessed. Depending on different application scenarios and implementation needs, the specific output method of the updated data list or sheet may be flexibly selected.

[0054] For example, in application scenarios where this example method is implemented on a single device, the updated data list or sheet may be output directly in display format to the current device's display component (such as a display or projector). This allows the operator of the current device to view the contents directly on the display component.

[0055] As another example, in application scenarios where the method in this example is implemented in a system consisting of multiple devices, the updated data list or sheet may be sent via any data communication means (wired connection, NFC, Bluetooth, WiFi, cellular mobile network, etc.) to a pre-configured device acting as another receiver within the system, i.e., a synchronization terminal. This allows the synchronization terminal to perform subsequent processing. For example, this synchronization terminal may be a pre-configured server. The server is usually located in the cloud and may function as a data processing and storage center, storing and distributing the updated data list or sheet. Here, the recipient of the distribution is a terminal device, and the owners or operators of these terminal devices may be system operators (users), system storage personnel, data analysts, etc.

[0056] As yet another example, in application scenarios where the method described in this example is implemented in a system consisting of multiple devices, the updated data list or sheet may be transmitted directly to a pre-configured terminal device by any data communication means. This terminal device may be one or more of the terminals mentioned in the preceding paragraph.

[0057] As can be seen from the above embodiments, the sheet data processing method according to the embodiments of this disclosure, when calculation using a node backend service is required, introduces a calculation engine, transfers the data and calculation formulas that need to be calculated to the calculation engine, and calculates the calculation formulas using the calculation engine. Then, it identifies the data list affected by the calculation formula and calculates only that data list, thereby achieving calculations based solely on incremental steps. Furthermore, after the calculation of the data list is completed, the data items that have changed are identified by comparing the data items before and after the calculation with the data list, and finally, only the changed data items are updated, thereby quickly completing the update of the data list. In this way, by utilizing the computational power of the calculation engine, the computational performance of the calculation formulas is greatly improved. In addition, the incremental calculation method and updates based on comparison of result differences reduce the range of recalculation after acquiring new input data and the range of final data updates, further improving computational efficiency and reducing resource utilization. Ultimately, overall response efficiency is improved, costs are reduced, and the user experience is greatly improved.

[0058] The methods according to the embodiments of this disclosure may be performed by a single device, such as a computer or a server. The methods according to the embodiments of this disclosure are also applicable to distributed scenarios, in which multiple devices may work together to perform the method. In such distributed scenarios, one of these multiple devices may perform only one or more steps of the method according to the embodiments of this disclosure, and these multiple devices may work together to complete the method.

[0059] While specific embodiments of this disclosure have been described above, other embodiments are also included in the attached claims. In some cases, the operations and steps described in the claims can be performed in a different order than those in the embodiments described above to achieve the desired effect. Furthermore, the processes shown in the drawings do not necessarily require the specified or sequential order to achieve the desired effect. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0060] Based on the same technical concept and corresponding to the methods in any of the embodiments described above, the Disclosure further provides a sheet data processing device. Figure 3 shows a schematic diagram of an exemplary device 300 according to an embodiment of the Disclosure. As shown in Figure 3, the device 300 may be used to perform Method 200 and may further include the following modules. The first module 310 is configured to retrieve input data in a sheet and to identify at least one formula that is affected by the input data. The second module 320 is configured to use a node backend service to identify the underlying data corresponding to the calculation formula and to write the input data and the underlying data to the calculation engine. The third module 330 is configured to use a node backend service to identify the data list affected by the calculation formula, transfer the calculation formula to the calculation engine to calculate the data list, and generate the calculation result. The fourth module 340 is configured to identify data items in the data list that have changed since the calculation, based on the calculation results, and to update the data for those data items. The fifth module 350 is configured to display the updated data list on a sheet.

[0061] In some exemplary embodiments, the second module 320 is further configured as follows: The input data and the basic data are written synchronously to the basic storage block for storing the calculation results of the calculation formula.

[0062] In some exemplary embodiments, the third module 330 is further configured as follows: The list data of the data list before calculation is stored in the basic storage block, and comparison data is formed. The input data and the basic data are read from the basic storage block, the data list is recalculated using the calculation formula, and the calculated data is generated.

[0063] In some exemplary embodiments, the fourth module 340 is further configured as follows: The data items are updated by comparing the comparison data with the calculation data and identifying the changed items as the data items.

[0064] In some exemplary embodiments, the base storage block includes a data structure for indicating the calculation status of each row of the calculation formula and is used to store the comparison data.

[0065] In some exemplary embodiments, the third module 330 is further configured as follows: Analyze the aforementioned formula and identify at least one level of sub-formula included in the formula, Based on the sub-expression of at least one level, a topology sequence graph of the calculation formula is created. The calculation formula is transferred to the calculation engine in the form of the topology sequence graph, and the calculation engine performs the calculations sequentially according to the topology sequence graph.

[0066] In some exemplary embodiments, the third module 330 is further configured as follows: The calculation engine analyzes the calculation formula corresponding to the topology sequence graph to determine whether it contains the underlying data fields. In response to the inclusion of the aforementioned basic data field, the topology sequence graph is updated with the basic data field as a sub-expression at at least one level.

[0067] In some exemplary embodiments, the second module 320 is further configured as follows: The system identifies the storage locations of the native binary data for the input data and the base data, and transfers these storage locations to the calculation engine in the form of pointers, so that the calculation engine can find the native binary data corresponding to the required data based on the corresponding pointers.

[0068] In some exemplary embodiments, the third module 330 is further configured as follows: In accordance with the format requirements of the calculation engine, the calculation formula is compiled into the corresponding abstract syntax tree. The abstract syntax tree is transferred to the computation engine.

[0069] For the sake of explanation, the above-described device is divided into various modules according to its function and each is described separately. Of course, when implementing this disclosure, the functions of each module may be implemented by the same or multiple software and / or hardware.

[0070] The apparatus of the above-described embodiment is for implementing the corresponding method 200 in any of the above embodiments and has the same beneficial effects as the embodiment of the corresponding method 200, but will not be described again here.

[0071] Based on the same technical concept, and corresponding to the method according to any of the embodiments described above, embodiments of this disclosure further provide computer equipment for implementing the above-described method 200. Figure 4 shows a schematic diagram of the hardware structure of an exemplary computer equipment 400 according to an embodiment of this disclosure. Computer equipment 400 may be used to implement the terminal device 102 in Figure 1. In some scenarios, this computer equipment 400 may be used to implement the server 104 and database server 106 in Figure 1.

[0072] As shown in Figure 4, the computer device 400 may include a processor 402, memory 404, a network module 406, a peripheral interface 408, and a bus 410. Here, the processor 402, memory 404, network module 406, and peripheral interface 408 are connected to each other internally via the bus 410 so that they can communicate with one another.

[0073] The processor 402 may be a central processing unit (CPU), an image processing processor, a neural network processor (NPU), a microcontroller (MCU), a programmable logic device, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or one or more integrated circuits. The processor 402 may be used to perform functions related to the technologies described herein. In some embodiments, the processor 402 may further include multiple processors integrated as a single logic component. For example, as shown in Figure 4, the processor 402 may include multiple processors 402a, 402b, and 402c.

[0074] The memory 404 may be configured to store data (e.g., instructions or computer code). As shown in Figure 4, the data stored in the memory 404 may include program instructions (e.g., program instructions for implementing method 200 according to an embodiment of this disclosure) and data to be processed (e.g., the memory may store configuration files for other modules). The processor 402 may access the program instructions and data stored in the memory 404 and perform operations on the data to be processed by executing the program instructions. The memory 404 may include a volatile storage device or a non-volatile storage device. In some embodiments, the memory 404 may include random access memory (RAM), read-only memory (ROM), optical disk, magnetic disk, hard disk, solid-state drive (SSD), flash memory, storage stick, etc.

[0075] The network interface 406 may be configured to provide the computer equipment 400 with other external devices via a network. This network may be either a wired or wireless network capable of sending and receiving data. For example, the network may be a wired network, a local wireless network (e.g., Bluetooth, Wi-Fi, Near Field Communication (NFC), etc.), a cellular network, the Internet, or a combination thereof. The type of network is not limited to the examples given above.

[0076] The peripheral interface 408 may be configured to connect the computer equipment 400 to one or more peripheral devices to enable information input and output. For example, the peripheral devices may include input devices such as keyboards, mice, touchpads, touchscreens, microphones, and various sensors, as well as output devices such as displays, speakers, vibrators, and indicator lights.

[0077] Bus 410 may be configured to transfer information between the various components of the computer device 400 (e.g., processor 402, memory 404, network interface 406, and peripheral interface 408), and may be an internal bus (e.g., processor-memory bus), an external bus (USB port, PCI-E bus), etc.

[0078] Although the architecture of the computer device 400 described above only shows the processor 402, memory 404, network interface 406, peripheral interface 408, and bus 410, in a specific implementation, the architecture of the computer device 400 may further include other components necessary to achieve normal operation. Furthermore, those skilled in the art will understand that the architecture of the computer device 400 described above may include only the components necessary to realize the solution according to the embodiment of this disclosure, and may not necessarily include all the components shown in the figure.

[0079] Based on the same technical concept and corresponding to the method according to any of the embodiments described above, the Disclosure further provides a non-temporary computer-readable storage medium for storing computer instructions for causing a computer to execute the method 200 according to any of the embodiments described above.

[0080] The computer-readable media of this embodiment include persistent, non-persistent, removable, and non-removable media, and the storage of information may be achieved by any method or technique. The information may be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random-access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital purpose disc (DVD) or other optical storage, cassette tapes, tape or disk storage, other magnetic storage devices, or any other non-transmission media that may be used to store information accessible by computing equipment.

[0081] The computer instructions stored in the storage medium of the above embodiment are used to cause the computer to execute the method 200 of any of the above embodiments, and have the beneficial effects of the corresponding embodiment of the method, which will not be described again here.

[0082] Based on the same technical idea, and corresponding to the method 200 of any of the embodiments described above, the Disclosure further provides a computer program product including computer program instructions, which, when executed by a computer, cause the computer to execute the method 200 of any of the embodiments described above. In some embodiments, the computer program instructions may be executed by one or more of the processors of the computer in order to cause the computer and / or processors to execute the method 200. Corresponding to the execution entity corresponding to each step of each embodiment of the method 200, the processor that performs the corresponding step may belong to the corresponding execution entity.

[0083] The computer program product of the above embodiment causes the computer and / or the processor to execute the method 200 of any of the above embodiments and has the beneficial effects of the corresponding embodiment, which will not be described again here.

[0084] As those skilled in the art will understand, the discussion of any of the embodiments described above is illustrative only and is not intended to imply that the scope of this disclosure (including the claims) is limited to these examples. Based on the technical idea of ​​this disclosure, the technical features in the embodiments described above or in different embodiments can be combined, and the steps can be performed in any order. Many other variations of different embodiments of the embodiments of this disclosure described above exist, but they are not described in detail for the sake of simplification.

[0085] Furthermore, in order to simplify the explanation and discussion without hindering the understanding of the embodiments of this disclosure, the provided drawings may not show well-known power / ground connections to integrated circuit (IC) chips or other components. Also, to avoid making the understanding of the embodiments of this disclosure difficult, the apparatus may be shown in block diagram form. This takes into account the fact that the details of the embodiments relating to the apparatus in these block diagrams are highly dependent on the platform on which the embodiments of this disclosure are to be carried out (i.e., these details should be within the understanding of those skilled in the art). If specific details (e.g., circuits) are described to illustrate the exemplary embodiments of this disclosure, it will be clear to those skilled in the art that the embodiments of this disclosure can be carried out in the absence of these specific details or when these specific details are changed. Therefore, these descriptions should be interpreted as illustrative and not limiting.

[0086] While this disclosure has been described with reference to specific embodiments thereof, many substitutions, modifications, and variations of these embodiments will be obvious to those skilled in the art from the above description. For example, the embodiments described are applicable to other memory architectures (e.g., dynamic RAM (DRAM)).

[0087] The embodiments of this disclosure are intended to cover all substitutions, modifications, and variations that fall within the broad scope of the appended claims. Accordingly, any omissions, modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the embodiments of this disclosure should be included within the scope of protection of this disclosure.

Claims

1. A method for processing sheet data, The process involves obtaining input data within a sheet and identifying at least one calculation formula that is affected by the input data, The node backend service identifies the underlying data corresponding to the calculation formula, and writes the input data and the underlying data to the calculation engine. Using the node backend service, identify the data list affected by the calculation formula, transfer the calculation formula to the calculation engine to calculate the data list, and generate the calculation result. Based on the calculation results, identify the data items in the data list that have changed since the calculation, and update the data for those data items. This includes displaying the updated data list on the aforementioned sheet, Sheet data processing method.

2. Writing the aforementioned input data and the aforementioned basic data to the calculation engine is, This includes writing the aforementioned input data and the aforementioned base data synchronously to a base storage block for storing the calculation results of the calculation formula, The sheet data processing method according to claim 1.

3. Transferring the calculation formula to the calculation engine and calculating the data list is, The process involves storing the pre-calculation list data in the aforementioned data list into the base storage block and forming comparison data. This includes reading the input data and the basic data from the basic storage block, recalculating the data list using the calculation formula, and generating calculated data. The sheet data processing method according to claim 2.

4. Identifying the data items in the aforementioned data list that have changed after calculation is, This includes updating the data items by comparing the comparison data with the calculation data and identifying the changed items as the data items. The sheet data processing method according to claim 3.

5. The sheet data processing method according to claim 3, wherein the basic storage block includes a data structure for indicating the calculation status of each row of a calculation formula and is used for storing the comparison data.

6. Transferring the calculation formula to the calculation engine and calculating the data list is, The calculation formula is analyzed, and at least one level of sub-formulas included in the formula is identified. Based on the sub-expressions at at least one level, a topology sequence graph of the calculation formula is created, The calculation formula is transferred to the calculation engine in the form of the topology sequence graph, and the calculation engine performs the calculations sequentially according to the topology sequence graph, including: The sheet data processing method according to claim 1.

7. After the calculation formula is transferred to the calculation engine in the form of the topology sequence graph, the sheet data processing method is as follows: The calculation engine analyzes the calculation formula corresponding to the topology sequence graph and determines whether it contains the underlying data field. The further includes updating the topology sequence graph with the underlying data field as a sub-expression at at least one level, in response to the inclusion of the underlying data field. The sheet data processing method according to claim 6.

8. Writing the aforementioned input data and the aforementioned basic data to the calculation engine is, This includes identifying the storage locations of the native binary data for the input data and the underlying data, and transmitting these storage locations to the calculation engine in the form of pointers, so that the calculation engine can find the native binary data corresponding to the required data based on the corresponding pointers. The sheet data processing method according to claim 1.

9. Transferring the calculation formula to the calculation engine and calculating the data list is, Compiling the calculation formula into the corresponding abstract syntax tree according to the format requirements of the calculation engine, The transfer of the abstract syntax tree to the computation engine is included, The sheet data processing method according to claim 1.

10. A sheet data processing device, A first module that retrieves input data within a sheet and identifies at least one calculation formula affected by the input data, A second module that identifies the underlying data corresponding to the calculation formula using a node backend service and writes the input data and the underlying data to the calculation engine, A third module that uses the node backend service to identify the data list affected by the calculation formula, transfers the calculation formula to the calculation engine to calculate the data list, and generates the calculation result, A fourth module identifies data items in the data list that have changed after the calculation based on the calculation results, and updates the data for those data items. A fifth module that displays the updated data list on the sheet, Sheet data processing device.

11. A computer device comprising memory, a processor, and a computer program stored in the memory and executable by the processor, The processor, when executing the computer program, implements the method according to any one of claims 1 to 9. Computer equipment.

12. A non-temporary computer-readable storage medium, A computer instruction is stored for causing a computer to perform the method according to any one of claims 1 to 9. A non-temporary computer-readable storage medium.