Data processing methods, media, electronic devices, and software products

By collaboratively handling spreadsheet editing operations between the client and server, determining and preserving editing intent, and generating modification operations, the consistency problem of bidirectional data association in multi-user collaborative editing is solved, achieving efficient bidirectional data association and preservation of editing intent between spreadsheets.

CN120218029BActive Publication Date: 2026-03-06BEIJING FEISHU TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202510686761.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-05-26
Publication Date
2026-03-06
Estimated Expiration
2045-05-26

AI Technical Summary

Technical Problem

In multi-person collaborative two-way data association, how to ensure the consistency of the two-way data association, especially in the collaborative editing scenario of spreadsheets, and avoid the loss of user editing intent.

Method used

By working collaboratively between the client and server, the system responds to user editing operations on spreadsheet cells, determines the editing intent, generates modification operations containing the editing intent, updates the displayed data of the target cell, ensures that each user's editing intent is preserved, and automatically establishes a bidirectional data association in the opposite direction on the server.

Benefits of technology

In collaborative editing scenarios, maintaining consistency in bidirectional data association preserves the editing intent of all users, thereby improving the efficiency and accuracy of bidirectional data association.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120218029B_ABST
    Figure CN120218029B_ABST
Patent Text Reader

Abstract

This disclosure provides a data processing method, medium, electronic device, and program product, relating to the field of computer technology. The method, in response to an editing operation by a first user on a target cell of a first spreadsheet, determines the editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation. Based on the editing intent, a first modification operation including the editing intent is generated, and the first modification operation is applied to the target cell to update the data displayed in the target cell. This method can retain the user's editing intent for the target cell during the modification operation, avoiding the loss of any user's editing intent. Especially in collaborative editing scenarios involving cells, the bidirectional data association between multiple users on the same cell can maintain the consistency of the bidirectional association and retain the editing intent of all users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and more specifically, to a data processing method, a medium, an electronic device, and a program product. Background Technology

[0002] With the development of computer technology, spreadsheets have become increasingly feature-rich. Currently, spreadsheets support two-way data association. Two-way data association means that spreadsheet A is associated with one or more records in spreadsheet B. The associated records in spreadsheet B are automatically linked back to spreadsheet A. Users can directly view the data in spreadsheet B from spreadsheet A, quickly jump to spreadsheet B, and jump back to spreadsheet A with a single click. In two-way data association, especially in collaborative scenarios involving multiple users, ensuring consistency is extremely important. Summary of the Invention

[0003] This summary section is provided to briefly introduce the concepts, which will be described in detail in the detailed description section below. This summary section is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.

[0004] In a first aspect, this disclosure provides a data processing method, executed by a client, the method comprising:

[0005] In response to an editing operation by a first user on a target cell of a first spreadsheet, the editing intent corresponding to the editing operation is determined based on the old value of the target cell recorded locally and the new value corresponding to the editing operation; the target cell is a cell in a second spreadsheet used to display a second record of a second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell;

[0006] Based on the editing intent, a first modification operation including the editing intent is generated, the first modification operation being used to instruct a bidirectional data association to be established between a first record of the first spreadsheet and a second record of the second spreadsheet;

[0007] The first modification operation is applied to the target cell to update the data displayed in the target cell.

[0008] Secondly, this disclosure provides a data processing method executed by a server, the method comprising:

[0009] The client receives a first modification operation sent by a client. The client is configured to respond to an editing operation by a first user on a target cell of a first spreadsheet, determine the editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation, and generate a first modification operation including the editing intent based on the editing intent. The target cell is a cell in a second spreadsheet used to display a second record of a second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell. The first modification operation is used to instruct the first record of the first spreadsheet and the second record of the second spreadsheet to establish a bidirectional data association.

[0010] Based on the first modification operation, a second modification operation is generated; the second modification operation is used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record in the first spreadsheet.

[0011] The second modification operation is sent to the client, which causes the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0012] Thirdly, this disclosure provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the method described in the first aspect, or implements the steps of the method described in the second aspect.

[0013] Fourthly, this disclosure provides an electronic device, comprising:

[0014] A storage device on which computer programs are stored;

[0015] A processing device for executing the computer program in the storage device to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.

[0016] Fifthly, this disclosure provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method described in the first aspect, or implements the steps of the method described in the second aspect.

[0017] The above technical solution, in response to a first user's editing operation on a target cell of a first spreadsheet, determines the editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation. Based on the editing intent, a first modification operation including the editing intent is generated, and the first modification operation is applied to the target cell to update the data displayed in the target cell. This method preserves the user's editing intent for the target cell during the modification operation, avoiding the loss of any user's editing intent. Especially in collaborative editing scenarios involving cells, the bidirectional data association between multiple users on the same cell can maintain the consistency of the bidirectional association and retain the editing intent of all users.

[0018] Other features and advantages of this disclosure will be described in detail in the following detailed description section. Attached Figure Description

[0019] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale. In the drawings:

[0020] Figure 1 This is a flowchart illustrating a data processing method according to some embodiments.

[0021] Figure 2 This is a schematic diagram illustrating the modification operation according to some embodiments.

[0022] Figure 3 This is a flowchart illustrating a data processing method according to other embodiments.

[0023] Figure 4 This is a timing diagram illustrating a data processing method according to some embodiments.

[0024] Figure 5 This is a schematic diagram of the structure of a data processing apparatus according to some embodiments.

[0025] Figure 6 This is a schematic diagram of the structure of a data processing apparatus according to some other embodiments.

[0026] Figure 7 This is a schematic diagram of the structure of an electronic device according to some embodiments. Detailed Implementation

[0027] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0028] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.

[0029] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.

[0030] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.

[0031] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0032] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0033] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.

[0034] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.

[0035] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0036] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.

[0037] Meanwhile, it is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.

[0038] Figure 1 This is a flowchart illustrating a data processing method according to some embodiments. For example... Figure 1 As shown, this disclosure provides a data processing method that can be executed by a client, specifically by a data processing device. This device can be implemented in software and / or hardware and configured in the client. Figure 1 As shown, the method may include the following steps.

[0039] In step 110, in response to the first user's editing operation on the target cell of the first spreadsheet, the editing intent corresponding to the editing operation is determined based on the old value of the target cell recorded locally and the new value corresponding to the editing operation.

[0040] Here, the target cell is the cell of the second record in the second spreadsheet used to display the bidirectional data association between the target cell and the first record.

[0041] Two-way data association refers to the association of one record in a first spreadsheet with one or more records in a second spreadsheet. The associated records in the second spreadsheet are automatically linked back to the first spreadsheet. Users can directly view records in the second spreadsheet within the target cell of the first spreadsheet, and can quickly jump from the first spreadsheet to the second spreadsheet and back to the first spreadsheet with a single click. Conversely, users can also directly view records in the first spreadsheet within the target cell of the second spreadsheet. In this embodiment, a record in a spreadsheet can refer to row data. That is, each row in the spreadsheet represents a record.

[0042] The following examples illustrate bidirectional data association using Tables 1 and 2.

[0043] Users can establish a two-way data relationship between Table 1 and Table 2 using a two-way join field. When a two-way data relationship is established between Table 1 and Table 2, a column of cells representing the two-way data relationship will be displayed in Table 1, and similarly, a column of cells representing the two-way data relationship will be displayed in Table 2. All cells in the column representing the two-way data relationship in Table 1 are target cells, and all cells in the column representing the two-way data relationship in Table 2 are target cells.

[0044] When a bidirectional data association is established between record A1 in Table 1 and record B1 in Table 2, record B1 from Table 2 is displayed under the target cell corresponding to record A1 in Table 1, and similarly, record A1 from Table 1 is displayed under the target cell corresponding to record B1 in Table 2, thus realizing the bidirectional data association between Table 1 and Table 2.

[0045] Table 1:

[0046]

[0047] Table 2:

[0048]

[0049] It should be understood that two-way data association can be used to establish data relationships between two spreadsheets, or to quickly view an entire row of data in another spreadsheet without switching spreadsheets.

[0050] The first user's editing operation on a target cell in the first spreadsheet can refer to the action of the first user modifying the content of the target cell in the first spreadsheet. For example, the editing operation could be changing B1 in the target cell to B1, B2.

[0051] The old value of the target cell recorded locally refers to the data value of the target cell in a snapshot of the first spreadsheet maintained locally on the client. For example, a snapshot of the first spreadsheet can be maintained locally on the client, and the old value of the target cell can be obtained from this snapshot. It's important to note that the old value of the target cell remains unchanged if the snapshot of the first spreadsheet maintained locally on the client is not updated. The snapshot of the first spreadsheet maintained locally on the client can be updated by the server. When the snapshot of the first spreadsheet maintained on the server is updated, the server sends the updated snapshot to the client, and the client replaces the old snapshot with the updated snapshot. Accordingly, the old value of the target cell recorded locally is updated to the data value of the target cell in the updated snapshot.

[0052] In other words, if the snapshot of the first spreadsheet maintained by the client is not updated, even if the user modifies the data value of the target cell, the old value of the target cell recorded locally on the client will not change.

[0053] The new value corresponding to an edit operation is the data value updated in the target cell through the edit operation. For example, if the old value of the target cell recorded locally on the client is [B1, B2], and the edit operation modifies the data value of the target cell to [B1], then the new value corresponding to the edit operation is [B1].

[0054] The client responds to the edit operation by comparing the old value of the target cell recorded locally with the new value corresponding to the edit operation to obtain the edit intent. The edit intent refers to the goal expressed by the first user when performing an edit operation on the target cell.

[0055] For example, if the old value of the target cell recorded locally on the client is [B1, B2], and the new value corresponding to the first user's edit operation on the target cell is [B1], then the edit intent corresponding to this edit operation is to delete B2. For instance, this edit intent can be represented by change={deleteValue: [B2]}.

[0056] It should be understood that, in the embodiments of this disclosure, the editing intent may include a first editing intent and / or a second editing intent, wherein the first editing intent represents adding a data value and the second editing intent represents deleting a data value. The first editing intent can be represented by the field addValue:[], for example, the field addValue:[A5] represents adding a data value A5. The second editing intent can be represented by the field deleteValue:[], for example, the field deleteValue:[A2] represents deleting a data value A2.

[0057] In step 120, a first modification operation including the editing intent is generated based on the editing intent.

[0058] Here, a change operation (change set, cs) describes how to modify the data format of a spreadsheet. For example, an edit operation generates a setRecord change operation (used to update or set fields of a data record). The server-side application of change operations can update a snapshot of the spreadsheet, while the client-side application of change operations can update the data values ​​in the spreadsheet to display the modified data values.

[0059] It's important to note that a modification operation can be a record in the global modification collection. The global modification collection records all modifications made to the spreadsheet, including inserts, deletions, updates, and so on. Each edit performed on the spreadsheet generates a modification operation and adds it to the global modification collection. When you need to update the spreadsheet data, you can retrieve modification operations from the global modification collection and apply them sequentially.

[0060] In this embodiment of the disclosure, the first modification operation may carry the editing intent corresponding to the editing operation, so as to preserve the first user's editing intent for the target cell.

[0061] It's worth noting that, generally, cell data sets are updated using an overwrite approach, which can lead to the loss of some user actions. For example, in a collaborative spreadsheet editing scenario, the target cell's old value is [B1, B2]. If user A changes the target cell's value to [B1], their editing intent is to delete B2. If user B changes the target cell's value to [B1, B2, B3], their editing intent is to add B3. If user B's editing operation is later than user A's, with an overwrite update, the target cell's data value will be [B1, B2, B3]. Clearly, user A's editing operation is lost.

[0062] In this embodiment of the disclosure, the editing intent of the first user is retained in the first modification operation. When the data of the target cell is updated in the subsequent process, the data of the target cell can be updated by the editing intent of the first user, so as to avoid losing the editing intent of any user for the target cell.

[0063] In other words, in this disclosure, each user's editing intent for the target cell is preserved in the corresponding modification operation to avoid losing the user's editing intent for the target cell.

[0064] Figure 2 This is a schematic diagram illustrating a modification operation according to some embodiments. A modification operation representing "a bidirectional data association between record A1 of table A and records B1 and B2 of table B" can be represented as follows: Figure 2 The code block shown. Figure 2 In the code block shown, the edit intent is preserved in the modification record through the change field.

[0065] Therefore, the first modification operation is actually used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet, and the first modification operation can contain the first user's editing intent for the target cell corresponding to the first record.

[0066] In step 130, the first modification operation is applied to the target cell to update the data displayed in the target cell.

[0067] Here, applying the first modification operation to the target cell can refer to performing the editing intent corresponding to the first modification operation on the target cell to update the data displayed in the target cell.

[0068] For example, the client receives the first user's editing operation through the view layer. The view layer sends the editing operation to the control layer. The control layer converts the editing operation into a first modification operation that includes the editing intent and sends the first modification operation to the model layer through the data port (IO). The model layer applies the first modification operation, updates the data in the target cell, and notifies the view layer to render the table data of the first spreadsheet so that the target cell displays the updated data.

[0069] The spreadsheet can be understood as follows: the view layer is the graphical user interface used by the client to display the spreadsheet to the user; the control layer is the software layer that translates editing operations into first modification operations that include the editing intent; and the model layer is the software layer that stores the spreadsheet data. The model layer can save a snapshot of the spreadsheet obtained from the server and provide the view layer with the data needed for display. Of course, the model layer can also modify its data by applying modification operations. After the data is modified, the model layer notifies the view layer to re-render the spreadsheet data. The data port is used to obtain snapshots from the server and provide them to the model layer. Simultaneously, the data port can also receive modification operations sent by a second user and / or by the server and send these modification operations to the model layer. Therefore, the model layer can synchronize modification operations from other users and / or the server without refreshing the page.

[0070] It's worth noting that since every edit operation on the target cell is converted into a first modification operation that includes the editing intent, in scenarios where multiple users collaboratively edit the target cell, all edit operations performed by multiple users on the target cell will be converted into a single first modification operation containing the corresponding editing intent, thus preserving each user's editing intent. When multiple first modification operations are applied to the target cell, each user's editing intent for the target cell can be reflected in the updated data of the target cell.

[0071] Therefore, by responding to the first user's editing operation on a target cell of the first spreadsheet, the editing intent corresponding to the editing operation is determined based on the old value of the target cell recorded locally and the new value corresponding to the editing operation. Based on the editing intent, a first modification operation including the editing intent is generated, and the first modification operation is applied to the target cell to update the data displayed in the target cell. This method preserves the user's editing intent for the target cell during the modification operation, avoiding the loss of any user's editing intent. Especially in collaborative editing scenarios involving cells, the bidirectional data association between multiple users on the same cell can maintain the consistency of the bidirectional association and retain the editing intent of all users.

[0072] In some feasible implementations, in step 130, the client can apply the editing intent included in the first modification operation to obtain the data value corresponding to the target cell based on the old value of the target cell recorded locally, and display the data value on the target cell.

[0073] Here, the client can modify the old value of the target cell recorded locally using the editing intent included in the first modification operation, based on the old value of the target cell recorded locally, and obtain the data value corresponding to the target cell.

[0074] For example, if the old value of the target cell is [B1, B2], and user 1's editing intention is to delete B2, then when the first modification operation is applied to the target cell, the data of the target cell is modified to [B1].

[0075] For example, in a collaborative editing scenario, if User 1's editing intent is to delete cell B2, and User 2's editing intent is to add cell B3, and User 2's editing operation is later than User 1's, then the modification operations on the target cell include User 1's first modification operation and User 2's first modification operation. Accordingly, based on the target cell's old value ([B1, B2]), User 1's first modification operation and User 2's first modification operation are applied sequentially. The target cell's data is first modified to [B1], and then, based on [B1], the target cell's value is modified to [B1, B3]. [B1, B3] are the final data values ​​of the target cell. Therefore, both User 1's and User 2's editing intents can be preserved and executed.

[0076] It is worth noting that in this embodiment, the data update of the target cell is no longer an overwrite update, but rather an incremental application of modification operations containing editing intent based on the old value of the target cell. In this way, in a cell-level collaborative editing scenario, the editing intent of all users for the same cell can be preserved.

[0077] Therefore, by implementing the above method, the data of the cell can be updated by directly applying the editing intent contained in the first modification operation based on the old value of the target cell, ensuring that the editing intent of each user for the target cell is not lost.

[0078] In some feasible implementations, in step 120, the client can generate a first modification operation that includes the new value and the editing intent based on the new value and editing intent corresponding to the editing operation.

[0079] Here, the new value corresponding to the edit operation is the data value updated in the target cell through the edit operation. For example, if the old value of the target cell recorded locally on the client is [B1, B2], and the edit operation modifies the data value of the target cell to [B1], then the new value corresponding to the edit operation is [B1].

[0080] In other words, the first modification operation can carry both the new value corresponding to the editing operation and the editing intent corresponding to the editing operation. For example... Figure 2 As shown, in the first modification operation, the new value corresponding to the editing operation is recorded through the field value:['B1','B2']. In the first modification operation, the editing intent corresponding to the editing operation is recorded through the change field.

[0081] It should be understood that the new value corresponding to an edit operation can be understood as the data value obtained after applying the editing intent corresponding to the edit operation, based on the old value of the target cell recorded locally. In non-collaborative editing scenarios (i.e., only one user edits the target cell), the new value corresponding to the edit operation is the final data value of the target cell. However, in collaborative editing scenarios (multiple users edit the target cell simultaneously), directly using the new value corresponding to the edit operation as the data value of the target cell will overwrite the edit operations performed by other users on the target cell.

[0082] In this disclosure, the new value corresponding to the editing operation carried by the first modification operation is used to ensure the accuracy of the order of data values ​​in the target cell.

[0083] For example, if the old value of the target cell is [A1], and the new value corresponding to the editing operation on the target cell is [A2, A1] (indicating that the user not only added A2 but also adjusted the order of A1 and A2), since the editing intent includes the first editing intent and / or the second editing intent mentioned above, the order of A1 and A2 cannot be described in the editing intent. If the editing intent (adding A2) is applied directly to the old value [A1], the data value of the target cell will be [A1, A2]. However, the actual data value of the target cell should be [A2, A1].

[0084] Therefore, by including the new value corresponding to the edit operation in the first modification operation, it can be ensured that the data order corresponding to the edit operation will not be incorrect. In other words, when applying the first modification operation to the target cell, the final order of the data in the target cell can be adjusted by using the new value corresponding to the edit operation included in the first modification operation.

[0085] Accordingly, in step 130, the client can receive the third modification operation of the second user on the target cell, and determine the modification operation with the largest version number among the first and third modification operations as the target modification operation. Then, based on the new value carried by the target modification operation, the client applies the editing intent corresponding to the modification operations other than the target modification operation in the first and third modification operations to obtain the data value corresponding to the target cell, and displays the data value on the target cell.

[0086] Here, in a collaborative editing scenario targeting a specific cell, the first user performs an editing operation on the target cell, generating a corresponding first modification operation. The second user then performs an editing operation on the target cell, generating a corresponding third modification operation. The third modification operation includes the new value and editing intent corresponding to the second user's editing operation on the target cell.

[0087] It should be noted that the method for generating the third modification operation is the same as the method for generating the first modification operation, and can be referred to the relevant description in the above implementation method, which will not be repeated here. The first user's client can receive the second user's third modification operation on the target cell through the server. This third modification operation carries the new value and editing intent corresponding to the second user's editing operation on the target cell.

[0088] In addition, there can be one or more second users. Accordingly, each second user will have a third modification operation, which carries the new value and editing intent corresponding to the second user's editing operation on the target cell.

[0089] In other words, in a collaborative editing scenario targeting a target cell, the modification operations on the target cell include at least one first modification operation and at least one third modification operation.

[0090] In collaborative editing scenarios targeting a cell, if the editing intents contained in the first and third modification operations are applied sequentially to the old value of the target cell, the accuracy of the final data order in the target cell cannot be guaranteed. If the new value carried by the modification operation with the largest version number among the first and third modification operations is used as the final data of the target cell, some of the user's editing intents will be lost.

[0091] Therefore, in this embodiment of the disclosure, the modification operation with the largest version number among the first modification operation and the third modification operation is determined as the target modification operation. Then, based on the new value carried by the target modification operation, the editing intent corresponding to the modification operations other than the target modification operation in the first modification operation and the third modification operation is applied to obtain the data value corresponding to the target cell. In this way, it can be ensured that the data value of the target cell can maintain the correct data order and also reflect the editing intent of each user.

[0092] Each modification operation can have a unique version number, and the size of the version number indicates the order in which the server received the modification operation. For example, a modification operation with a larger version number means that the server received the modification operation later. In other words, a modification operation with a larger version number has more recent data values.

[0093] The target modification operation can be understood as the latest modification operation among the first and third modification operations. Therefore, the data order in the new value corresponding to the editing operation carried in the target modification operation should be the final data order of the target cell.

[0094] Therefore, by applying the editing intents corresponding to the modification operations other than the target modification operation in the first and third modification operations, based on the new value carried by the target modification operation, we can not only ensure the accuracy of the data order of the final data value of the target cell, but also ensure that the editing intent of each user is not lost.

[0095] For example, if the old value of the target cell is [A1, A2, A3], in a collaborative editing scenario, suppose the first user modifies the data value of the target cell to [A1, A2, A4], with the corresponding editing intent being to delete A3 and add A4. Suppose the second user modifies the data value of the target cell to [A2, A1, A3, A5] (both adjusting the order of A2 and A1 and adding A5). Suppose the third modification operation corresponding to the second user is the modification operation with the largest version number, then based on [A2, A1, A3, A5], applying the editing intent contained in the first modification operation corresponding to the first user (deleting A3 and adding A4), the final data value of the target cell will be [A2, A1, A5, A4].

[0096] It's worth noting that the above example only illustrates collaborative editing by two users and does not imply that only two users can collaboratively edit the target cell. If, in addition to the first user's initial modification operation, other users also modify the target cell, then these other modification operations can be applied sequentially based on the new value carried by the target modification operation.

[0097] Therefore, through the above implementation method, in the scenario of collaborative editing of target cells, not only can the accuracy of the data order of the final data value of the target cell be guaranteed, but also the editing intention of each user can be guaranteed not to be lost.

[0098] In some feasible implementations, the client can also send a first modification operation to the server, receive a second modification operation sent by the server, apply the second modification operation to the second spreadsheet, and update the data displayed in the second spreadsheet.

[0099] Here, the server generates a second modification operation based on the first modification operation and sends the second modification operation to the client. The second modification operation is used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record in the first spreadsheet.

[0100] It should be noted that the first modification operation is triggered by the first user, and this first modification operation is used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet. In order to enable the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet, it is also necessary to instruct the second record of the second spreadsheet to establish a bidirectional data association with the first record of the first spreadsheet. In this embodiment of the disclosure, the server instructs the client to establish a bidirectional data association between the second record of the second spreadsheet and the first record of the first spreadsheet.

[0101] For example, the first modification operation corresponding to the first user indicates that record A1 of table A and record B1 of table B establish a bidirectional data association. In order to enable the direct viewing of record A1 of table A in table B, the server needs to send a second modification operation to the client indicating that record B1 of table B and record A1 of table A establish a bidirectional data association. After the client executes the second modification operation, record A1 of table A and record B1 of table B form a bidirectional data association.

[0102] It should be understood that the main difference between the first and second modification operations lies in the subject on which they are applied. The first modification operation is applied to the first spreadsheet, enabling the target cell of the first spreadsheet to display the second record of the second spreadsheet. The second modification operation is applied to the second spreadsheet, enabling the corresponding target cell of the second spreadsheet to display the first record of the first spreadsheet. This allows for bidirectional data association between the first record of the first spreadsheet and the second record of the second spreadsheet.

[0103] By sending a second modification operation from the server to the client, the user only needs to establish a two-way data relationship between the first and second spreadsheets. The server will automatically help the user establish a two-way data relationship in the opposite direction, which greatly improves the efficiency of two-way data relationship.

[0104] It's worth noting that the server generates a corresponding second modification operation based on the first modification operation. Since the first modification operation carries an editing intent, the bidirectional data association in the opposite direction can be determined through the editing intent, thus generating the corresponding second modification operation. For example, if the first modification operation indicates "relationship between record A1 in table A and record B1 in table B," the corresponding editing intent is to add B1 to the target cell corresponding to record A1. Correspondingly, the second modification operation should indicate "relationship between record B1 in table B and record A1 in table A," with the corresponding editing intent being to add A1 to the target cell corresponding to record B1.

[0105] After receiving the second modification operation from the server, the client applies the second modification operation to the second spreadsheet to update the data displayed in the second spreadsheet.

[0106] Following the above implementation method, applying the second modification operation to the second spreadsheet can be based on the old value of the target cell corresponding to the second spreadsheet recorded locally, and then applying the editing intent included in the second modification operation to obtain the data value corresponding to the target cell.

[0107] Of course, following the above implementation method, in a collaborative editing scenario, applying a second modification operation to the second spreadsheet can also be based on the new value carried by the corresponding target modification operation, and the editing intent corresponding to the modification operation other than the target modification operation.

[0108] In other words, the logic of applying the second modification operation to the second spreadsheet is the same as that of applying the first modification operation to the first spreadsheet, as can be found in the relevant description of the above implementation method.

[0109] Therefore, through the above implementation method, users only need to establish a two-way data association between the first spreadsheet and the second spreadsheet. The server will automatically help users establish a two-way data association in the opposite direction by re-issuing a second modification operation, which greatly improves the efficiency of two-way data association.

[0110] Figure 3 This is a flowchart illustrating a data processing method according to other embodiments. For example... Figure 3 As shown, this disclosure provides a data processing method that can be executed by a server, specifically by a data processing device. This device can be implemented in software and / or hardware and configured within the server. Figure 3 As shown, the method may include the following steps.

[0111] S310, receiving a first modification operation sent by the client, the client is used to respond to the first user's editing operation on the target cell of the first spreadsheet, determine the editing intent corresponding to the editing operation based on the old value of the target cell in the local record and the new value corresponding to the editing operation, and generate a first modification operation including the editing intent based on the editing intent; the target cell is a cell in the second spreadsheet used to display the second record of the second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell; the first modification operation is used to instruct the first record of the first spreadsheet and the second record of the second spreadsheet to establish a bidirectional data association;

[0112] S320, Based on the first modification operation, a second modification operation is generated; the second modification operation is used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record in the first spreadsheet;

[0113] S330, a second modification operation is sent to the client, which causes the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0114] Here, the server generates a second modification operation based on the first modification operation, and establishes a bidirectional data association between the first record in the first spreadsheet and the second record in the second spreadsheet by sending a second modification operation to the client to instruct the second record in the second spreadsheet to establish a bidirectional data association between the second record in the second spreadsheet and the first record in the second spreadsheet. This enables the client to directly view the second record in the second spreadsheet in the target cell of the first spreadsheet and the client to directly view the first record in the first spreadsheet in the target cell of the second spreadsheet. It also supports quick jumps from the first spreadsheet to the second spreadsheet and one-click jumps back from the second spreadsheet to the first spreadsheet.

[0115] It is worth noting that for a detailed explanation of steps S310 to S330 above, please refer to the relevant description of the implementation method on the client side, and it will not be repeated here.

[0116] Therefore, through steps S310 to S330, the user only needs to establish a bidirectional data association between the first and second spreadsheets. The server will automatically help the user establish a reverse bidirectional data association by re-issuing a second modification operation, greatly improving the efficiency of bidirectional data association. Moreover, since the first modification operation contains the first user's editing intent, the user's editing intent for the target cell can be preserved in the modification operation, avoiding the loss of any user's editing intent. Especially in collaborative editing scenarios involving cells, the bidirectional data association between multiple users for that cell can maintain the consistency of the bidirectional association and preserve the editing intent of all users.

[0117] In some feasible implementations, the server can also apply a first modification operation to a snapshot of the first spreadsheet to update the snapshot of the first spreadsheet, and apply a second modification operation to a snapshot of the second spreadsheet to update the snapshot of the second spreadsheet.

[0118] Here, the server is also used to receive a first modification operation sent by the client, and update the snapshot of the first spreadsheet by applying the first modification operation to the snapshot of the first spreadsheet. Furthermore, the server is also used to update the snapshot of the second spreadsheet by applying a second modification operation to the snapshot of the second spreadsheet by resending a second modification operation to the client.

[0119] In some embodiments, based on the old value of the target cell in a snapshot of a first spreadsheet recorded locally, the editing intent included in the first modification operation can be applied to obtain the data value corresponding to the target cell, and the snapshot of the first spreadsheet can be updated based on the data value.

[0120] It is worth noting that the logic of applying the editing intent of the first modification operation based on the old value of the target cell in the snapshot of the first spreadsheet recorded locally is consistent with the logic of applying the editing intent of the first modification operation based on the old value of the target cell recorded locally described in the above embodiment, and will not be repeated here.

[0121] It is worth noting that the snapshot update strategy for the second spreadsheet is consistent with that for the first spreadsheet, and will not be repeated here. That is, based on the old value of the target cell in the snapshot of the second spreadsheet recorded locally, the editing intent included in the second modification operation can be applied to obtain the data value corresponding to the target cell, and the snapshot of the second spreadsheet can be updated based on the data value.

[0122] In other embodiments, the client is used to generate a first modification operation, including the new value and the editing intent, based on the new value corresponding to the editing operation. A detailed description of the first modification operation can be found in the relevant descriptions of the above embodiments, and will not be repeated here.

[0123] Correspondingly, the server can receive the third modification operation of the second user on the target cell, and determine the modification operation with the largest version number among the first and third modification operations as the target modification operation. Then, based on the new value carried by the target modification operation, the server applies the editing intent corresponding to the modification operations other than the target modification operation in the first and third modification operations to obtain the data value corresponding to the target cell, and updates the snapshot of the first spreadsheet based on the data value.

[0124] Here, the third modification operation includes the new value and editing intent corresponding to the second user's editing operation on the target cell.

[0125] It is worth noting that the logic for obtaining the data value used to update the first spreadsheet is the same as the logic for obtaining the data value displayed in the target cell described in the above embodiment. The main difference lies in the subject of the application, which will not be elaborated here.

[0126] It's worth noting that the snapshot update strategy for the second spreadsheet is the same as that for the first spreadsheet, and will not be elaborated upon here. After receiving the third modification operation corresponding to the second user, the server will generate a fourth modification operation based on the third modification operation. Then, the server will update the snapshot of the second spreadsheet using the fourth modification operation.

[0127] Figure 4 This is a timing diagram illustrating a data processing method according to some embodiments. For example... Figure 4 As shown, the following steps may be included:

[0128] S501, the first user triggers an editing operation in the view layer;

[0129] S502, the view layer sends an editing operation to the control layer;

[0130] S503, the control layer generates a first modification operation; wherein, the first modification operation may include the new value and editing intent corresponding to the first user's editing operation;

[0131] S504, the control layer sends the first modification operation to the data port;

[0132] S505, the control layer sends the first modification operation to the model layer; wherein, steps S504 and S505 can be performed synchronously;

[0133] S506, the model layer applies a first modification operation; wherein, a detailed description of the model layer applying the first modification operation can be found in the relevant description of the above implementation method, the model layer applies the first modification operation to modify the data in the spreadsheet;

[0134] S507, The model layer notifies the view layer of data updates;

[0135] S508, the view layer renders table data; wherein, the view layer can pull table data from the model layer after the first modification operation is applied, and use the table data for rendering;

[0136] S509, send the first modification operation; wherein, after receiving the first modification operation, the data port will also send the first modification operation to the server so that the server generates a second modification operation based on the first modification operation, so as to complete the bidirectional data association between the first spreadsheet and the second spreadsheet through the second modification operation;

[0137] S510, the server generates the second modification operation;

[0138] S511, the server sends a second modification operation to the data port;

[0139] S512, the data port sends the second modification operation to the model layer;

[0140] S513, the model layer applies the second modification operation; wherein, the logic of applying the second modification operation to the model layer is consistent with the logic of applying the first modification operation to the model layer;

[0141] S514, The model layer notifies the view layer of data updates;

[0142] S515, render table data; wherein, the view layer can pull table data after applying the second modification operation from the model layer, and use the table data for rendering.

[0143] In collaborative editing scenarios, a second user can also simultaneously edit the target cell, and correspondingly, such as Figure 4 As shown, the following steps may be included:

[0144] S601, the second user sends a third modification operation to the server; wherein, the concept of the third modification operation is the same as the concept of the first modification operation, and the method of generating the third modification operation is the same as the method of generating the first modification operation;

[0145] S602, the server generates a fourth modification operation; wherein, the concept of the fourth modification operation is consistent with the concept of the second modification operation, and the method of generating the fourth modification operation is consistent with the method of generating the second modification operation; the server completes the bidirectional data association between the first spreadsheet and the second spreadsheet initiated by the second user through the fourth modification operation;

[0146] S603, the server sends the third and fourth modification operations to the data port;

[0147] S604, the data port sends the third and fourth modification operations to the model layer;

[0148] S605, the third and fourth modification operations are applied to the model layer respectively;

[0149] S606, The model layer notifies the view layer of data updates;

[0150] S607, the view layer renders table data.

[0151] It is worth noting that the order of steps S601 to S607 for the second user and steps S510 to S515 for the first user is not important.

[0152] Of course, such as Figure 4 As shown, it may also include the following steps:

[0153] S608, the server applies the first modification operation, the second modification operation, the third modification operation and the fourth modification operation respectively to modify the snapshot.

[0154] The server will apply first, second, third, and fourth modification operations to update the snapshots of the first and second spreadsheets, respectively. It's important to note that the updated snapshots will also be sent to the client to update the snapshot maintained by the client.

[0155] Figure 5 This is a schematic diagram of the structure of a data processing apparatus according to some embodiments. For example... Figure 5 As shown, this embodiment of the disclosure provides a data processing device 500, configured in a client, the data processing device 500 including:

[0156] The determination module 501 is configured to, in response to an editing operation by a first user on a target cell of a first spreadsheet, determine the editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation; the target cell is a cell in a second spreadsheet used to display a second record of a second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell;

[0157] The first generation module 502 is configured to generate a first modification operation including the editing intent according to the editing intent. The first modification operation is used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet.

[0158] The first update module 503 is configured to apply the first modification operation to the target cell and update the data displayed in the target cell.

[0159] Optionally, the data processing device 500 further includes:

[0160] The first sending module is configured to send the first modification operation to the server. The server is used to generate a second modification operation based on the first modification operation and send the second modification operation to the client. The second modification operation is used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record in the first spreadsheet.

[0161] The first receiving module is configured to receive the second modification operation sent by the server, apply the second modification operation to the second spreadsheet, and update the data displayed in the second spreadsheet.

[0162] Optionally, the first update module 503 is specifically configured as follows:

[0163] Based on the old value of the target cell recorded locally, the editing intent included in the first modification operation is applied to obtain the data value corresponding to the target cell, and the data value is displayed on the target cell.

[0164] Optionally, the first generation module 502 is specifically configured as follows:

[0165] Based on the new value corresponding to the editing operation and the editing intent, a first modification operation including the new value and the editing intent is generated.

[0166] Optionally, the first update module 503 is specifically configured as follows:

[0167] Receive a third modification operation from a second user on the target cell, the third modification operation including the new value and editing intent corresponding to the editing operation of the second user on the target cell;

[0168] The modification operation with the largest version number among the first modification operation and the third modification operation is identified as the target modification operation;

[0169] Based on the new value carried by the target modification operation, the editing intent corresponding to the modification operations other than the target modification operation in the first modification operation and the third modification operation is applied to obtain the data value corresponding to the target cell, and the data value is displayed on the target cell.

[0170] The functional logic executed by each functional module in the aforementioned data processing device 500 has been described in detail in the section on methods, and will not be repeated here.

[0171] Figure 6 This is a schematic diagram of the structure of a data processing apparatus according to other embodiments. For example... Figure 6 As shown, this embodiment of the disclosure provides a data processing device 600, configured in a server, the data processing device 600 including:

[0172] The second receiving module 601 is configured to receive a first modification operation sent by a client. The client is used to respond to an editing operation by a first user on a target cell of a first spreadsheet, determine the editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation, and generate a first modification operation including the editing intent based on the editing intent. The target cell is a cell in a second spreadsheet used to display a second record of a second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell. The first modification operation is used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet.

[0173] The second generation module 602 is configured to generate a second modification operation based on the first modification operation; the second modification operation is used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record in the first spreadsheet.

[0174] The second sending module 603 is configured to send the second modification operation to the client, the second modification operation being used to cause the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0175] Optionally, the data processing device 600 further includes:

[0176] The second update module is configured to apply the first modification operation to a snapshot of the first spreadsheet to update the snapshot of the first spreadsheet, and to apply the second modification operation to a snapshot of the second spreadsheet to update the snapshot of the second spreadsheet.

[0177] Optionally, the second update module is specifically configured as follows:

[0178] Based on the old value of the target cell in the snapshot of the first spreadsheet recorded locally, the editing intent included in the first modification operation is applied to obtain the data value corresponding to the target cell, and the snapshot of the first spreadsheet is updated based on the data value.

[0179] Optionally, the client is configured to generate a first modification operation including the new value and the editing intent based on the new value corresponding to the editing operation and the editing intent;

[0180] The second update module is specifically configured as follows:

[0181] Receive a third modification operation from a second user on the target cell, the third modification operation including the new value and editing intent corresponding to the editing operation of the second user on the target cell;

[0182] The modification operation with the largest version number among the first modification operation and the third modification operation is identified as the target modification operation;

[0183] Based on the new value carried by the target modification operation, the editing intent corresponding to the modification operations other than the target modification operation in the first modification operation and the third modification operation is applied to obtain the data value corresponding to the target cell, and the snapshot of the first spreadsheet is updated based on the data value.

[0184] The functional logic executed by each functional module in the aforementioned data processing device 600 has been described in detail in the section on methods, and will not be repeated here.

[0185] The following is for reference. Figure 7 The diagram illustrates a structural schematic of an electronic device (e.g., a client or server) 700 suitable for implementing embodiments of the present disclosure. The client in embodiments of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 7 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0186] like Figure 7 As shown, the electronic device 700 may include a processing unit (e.g., a central processing unit, a graphics processor, etc.) 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage device 708 into a random access memory (RAM) 703. The RAM 703 also stores various programs and data required for the operation of the electronic device 700. The processing unit 701, ROM 702, and RAM 703 are interconnected via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.

[0187] Typically, the following devices can be connected to I / O interface 705: input devices 706 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 707 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 708 including, for example, magnetic tapes, hard disks, etc.; and communication devices 709. Communication device 709 allows electronic device 700 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 7An electronic device 700 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.

[0188] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 709, or installed from storage device 708, or installed from ROM 702. When the computer program is executed by processing device 701, it performs the functions defined in the methods of embodiments of this disclosure.

[0189] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0190] In some implementations, the client and server can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol), and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0191] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.

[0192] The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: respond to an editing operation by a first user on a target cell of a first spreadsheet, determine an editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation; the target cell is a cell of a second record in a second spreadsheet that establishes a bidirectional data association with the first record corresponding to the target cell; generate a first modification operation including the editing intent, the first modification operation being used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet; and apply the first modification operation to the target cell to update the data displayed in the target cell.

[0193] Alternatively, the aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: receive a first modification operation sent by a client, the client being configured to, in response to an editing operation by a first user on a target cell of a first spreadsheet, determine an editing intent corresponding to the editing operation based on the old value of the target cell recorded locally and the new value corresponding to the editing operation, and generate a first modification operation including the editing intent based on the editing intent; the target cell being a cell in a second spreadsheet used to display a second record of a second spreadsheet that establishes a bidirectional data association with a first record corresponding to the target cell; the first modification operation being used to instruct the first record of the first spreadsheet to establish a bidirectional data association with the second record of the second spreadsheet; generate a second modification operation based on the first modification operation; the second modification operation being used to instruct the second record in the second spreadsheet to establish a bidirectional data association with the first record of the first spreadsheet; and send the second modification operation to the client, the second modification operation being used to cause the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0194] Computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof, including but not limited to object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0195] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0196] The modules described in the embodiments of this disclosure can be implemented in software or hardware. The names of the modules are not, in some cases, intended to limit the functionality of the module itself.

[0197] The functions described above in this document can be performed at least in part by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.

[0198] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0199] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.

[0200] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.

[0201] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative forms of implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which the various modules perform their operations has been described in detail in the embodiments relating to the method, and will not be elaborated upon here.

Claims

1. A data processing method, characterized by, The method is executed by a client, and comprises: In response to an editing operation of a first user on a target cell of a first electronic form, comparing an old value of the target cell recorded locally and a new value corresponding to the editing operation, determining an editing intention corresponding to the editing operation; the target cell is a cell of a second record of a second electronic form for displaying a two-way data association established with the first record corresponding to the target cell; the old value is a data value of the target cell in a snapshot of the first electronic form maintained locally at the client; the two-way data association is used to support viewing records of another electronic form associated in one electronic form and / or support jumping from one electronic form to another electronic form; According to the editing intention, a first modification operation including the editing intention is generated, and the first modification operation is used to indicate that the first record of the first electronic form establishes a two-way data association with the second record of the second electronic form; the first modification operation is a record in a global modification set, and the global modification set is used to record modification operations for the first electronic form, and when updating data of the first electronic form, a modification operation is taken out from the global modification set, and the modification operation is applied; The first modification operation is applied to the target cell to update the data displayed by the target cell; The method further comprises: The first modification operation is sent to a server, and the server is used to generate a second modification operation according to the first modification operation, and send the second modification operation to the client, and the second modification operation is used to indicate that the second record in the second electronic form establishes a two-way data association with the first record of the first electronic form; The second modification operation sent by the server is received, and the second modification operation is applied to the second electronic form to update the data displayed by the second electronic form; According to the editing intention, a first modification operation including the editing intention is generated, comprising: According to the new value corresponding to the editing operation and the editing intention, a first modification operation including the new value and the editing intention is generated; The first modification operation is applied to the target cell to update the data displayed by the target cell, comprising: A third modification operation of a second user on the target cell is received, and the third modification operation includes a new value corresponding to an editing operation of the second user on the target cell and an editing intention; The modification operation with the maximum version number in the first modification operation and the third modification operation is determined as a target modification operation; On the basis of the new value carried by the target modification operation, the editing intention corresponding to the modification operation other than the target modification operation in the first modification operation and the third modification operation is applied, to obtain a data value corresponding to the target cell, and the data value is displayed on the target cell.

2. The method of claim 1, wherein, The first modification operation is applied to the target cell to update the data displayed by the target cell, comprising: On the basis of the old value of the target cell recorded locally, the data value corresponding to the target cell is obtained by applying the edit intention included in the first modification operation, and the data value is displayed on the target cell.

3. A data processing method, characterized by, The method is executed by a server, and the method comprises: receiving a first modification operation sent by a client, the client being configured to, in response to an edit operation of a first user on a target cell of a first electronic spreadsheet, determine an edit intention corresponding to the edit operation by comparing an old value of the target cell recorded locally and a new value corresponding to the edit operation, and generate a first modification operation including the edit intention according to the edit intention; the target cell is a cell of a second record of a second electronic spreadsheet for displaying a two-way data association established with a first record of the first electronic spreadsheet; the first modification operation is used to indicate that the first record of the first electronic spreadsheet and the second record of the second electronic spreadsheet establish a two-way data association; the old value is a data value of the target cell in a snapshot of the first electronic spreadsheet maintained locally by the client; and the two-way data association is used to support viewing of a record of another electronic spreadsheet associated in one electronic spreadsheet and / or support jumping from one electronic spreadsheet to another electronic spreadsheet; generating a second modification operation according to the first modification operation; the second modification operation is used to indicate that the second record in the second electronic spreadsheet and the first record of the first electronic spreadsheet establish a two-way data association; and the first modification operation is a record in a global modification set, the global modification set being used to record modification operations for the first electronic spreadsheet, and when data of the first electronic spreadsheet is updated, a modification operation is taken out from the global modification set and applied; sending the second modification operation to the client, so that the client applies the second modification operation to the second electronic spreadsheet to update data displayed by the second electronic spreadsheet; The method further comprises: applying the first modification operation to a snapshot of the first electronic spreadsheet to update the snapshot of the first electronic spreadsheet, and applying the second modification operation to a snapshot of the second electronic spreadsheet to update the snapshot of the second electronic spreadsheet; The client is configured to generate a first modification operation including a new value and an edit intention according to the new value corresponding to the edit operation and the edit intention; The application of the first modification operation to the snapshot of the first electronic spreadsheet to update the snapshot of the first electronic spreadsheet comprises: receiving a third modification operation of a second user on the target cell, the third modification operation including a new value and an edit intention corresponding to an edit operation of the second user on the target cell; determining a modification operation with a maximum version number in the first modification operation and the third modification operation as a target modification operation; and On the basis of a new value carried by the target modification operation, the first modification operation and the third modification operation corresponding to the editing intention of the modification operation other than the target modification operation are applied to obtain a data value corresponding to the target cell, and the snapshot of the first electronic spreadsheet is updated based on the data value.

4. The method of claim 3, wherein, The applying the first modification operation to the snapshot of the first electronic spreadsheet to update the snapshot of the first electronic spreadsheet comprises: On the basis of the old value of the target cell of the locally recorded snapshot of the first electronic spreadsheet, the editing intention included in the first modification operation is applied to obtain a data value corresponding to the target cell, and the snapshot of the first electronic spreadsheet is updated based on the data value.

5. A computer readable medium having stored thereon a computer program, characterized in that, The computer program is executed by the processing device to implement the steps of the method of any one of claims 1-2, or implement the steps of the method of any one of claims 3-4.

6. An electronic device, comprising: comprise: a storage device having stored thereon a computer program; a processing device configured to execute the computer program in the storage device to implement the steps of the method of any one of claims 1-2, or implement the steps of the method of any one of claims 3-4.

7. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processing device to implement the steps of the method of any one of claims 1-2, or implement the steps of the method of any one of claims 3-4.

Citation Information

Patent Citations

  • Collaborative editing, cooperative processing method, apparatus and device, and storage medium

    CN107943777A

  • Data processing method and device, equipment and storage medium

    CN117370433A

  • Method for synchronizing table data and related device

    CN117992543A