Data processing method, medium, electronic device and program product

By responding to user editing operations, determining editing intentions and generating modification operations, the problem of two-way data association consistency and editing intentions in multi-person collaborative editing is solved, and efficient collaborative editing and data updates are achieved in spreadsheets.

CN120218029AActive Publication Date: 2025-06-27BEIJING FEISHU TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the bidirectional data association scenario of multi-person collaboration, how to ensure the consistency of bidirectional data association and avoid the loss of user editing intentions.

Method used

By responding to the user's editing operation on the target cell of the spreadsheet, the editing intention of the editing operation is determined, and corresponding modification operations are generated to update the display data of the target cell. The client and the server work together to ensure the establishment and update of two-way data associations.

Benefits of technology

It realizes the preservation of all user editing intentions in the collaborative editing scenario, maintaining consistency of two-way data associations, and avoiding the loss of intentions during data updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120218029A_ABST
    Figure CN120218029A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method, a medium, electronic equipment and a program product, and relates to the technical field of computers, and the method comprises the steps: responding to an editing operation of a first user for a target cell of a first spreadsheet, and according to a locally recorded old value of the target cell and a new value corresponding to the editing operation, editing the target cell according to the old value and the new value corresponding to the editing operation; according to the method, the editing intention corresponding to the editing operation is determined, the first modification operation including the editing intention is generated according to the editing intention, the first modification operation is applied to the target cell, and the data displayed by the target cell is updated, so that the editing intention of the user for the target cell can be reserved in the modification operation, and the editing intention of any user is prevented from being lost. Particularly, in a collaborative editing scene for the cells, the bidirectional data association of the plurality of users for the cells can keep the consistency of bidirectional association and keep the editing intentions of all the users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technologies, and in particular, to a data processing method, a medium, an electronic device, and a program product. Background Art

[0002] With the development of computer technologies, the functions of spreadsheets have become increasingly rich. Currently, spreadsheets can support two-way data association. Two-way data association means that spreadsheet A associates with one or more records of spreadsheet B, and the associated records in spreadsheet B will be automatically associated back to spreadsheet A. Users can directly view the data of spreadsheet B in spreadsheet A, support quick jump to spreadsheet B, and can jump back to spreadsheet A with one key. In two-way data association, especially in two-way data association with multiple people collaborating, it is extremely important to ensure the consistency of two-way data association. Summary of the Invention

[0003] This Summary of the Invention section is provided to introduce concepts in a brief form, which will be described in detail in the subsequent Detailed Description section. This Summary of the Invention section is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to be used to limit the scope of the claimed technical solution.

[0004] In a first aspect, the present disclosure provides a data processing method, which is executed by a client, and the method includes: In response to an editing operation of a first user on a target cell of a first spreadsheet, determine an editing intention corresponding to the editing operation according to the old value of the target cell recorded locally and the new value corresponding to the editing operation; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; Generate a first modification operation including the editing intention according to the editing intention, where the first modification operation is used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association; Apply the first modification operation to the target cell to update the data displayed in the target cell.

[0005] In a second aspect, the present disclosure provides a data processing method, which is executed by a server, and the method includes: Receive a first modification operation sent by a client. The client is configured to, in response to an editing operation of a first user on a target cell of a first spreadsheet, determine an editing intention corresponding to the editing operation according to an old value of the target cell recorded locally and a new value corresponding to the editing operation, and generate a first modification operation including the editing intention according to the editing intention. The target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell. The first modification operation is used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association. Generate a second modification operation according to the first modification operation. The second modification operation is used to indicate that a second record in the second spreadsheet and the first record of the first spreadsheet establish a two-way data association. Send the second modification operation to the client. The second modification operation is used to cause the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0006] In a third aspect, the present disclosure provides a computer-readable medium having a computer program stored thereon. When the computer program is executed by a processing device, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.

[0007] In a fourth aspect, the present disclosure provides an electronic device, including: A storage device having a computer program stored thereon; A processing device configured to execute the computer program in the storage device to implement the steps of the method described in the first aspect, or the steps of the method described in the second aspect.

[0008] In a fifth aspect, the present disclosure provides a computer program product including a computer program. When the computer program is executed by a processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the second aspect are implemented.

[0009] Through the above technical solutions, by responding to an editing operation of a first user on a target cell of a first spreadsheet, determining an editing intention corresponding to the editing operation according to an old value of the target cell recorded locally and a new value corresponding to the editing operation, generating a first modification operation including the editing intention according to the editing intention, and applying the first modification operation to the target cell to update the data displayed in the target cell, the editing intention of the user for the target cell can be retained in the modification operation, avoiding the loss of any user's editing intention. Especially in the scenario of collaborative editing of cells, the two-way data association of multiple users for the cell can maintain the consistency of the two-way association and retain the editing intentions of all users.

[0010] Other features and advantages of the present disclosure will be described in detail in the following detailed implementation section. Description of the Drawings

[0011] In combination with the accompanying drawings and with reference to the following detailed implementation, the above and other features, advantages, and aspects of the various embodiments of the present disclosure will become more apparent. 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 original elements and elements are not necessarily drawn to scale. In the drawings: Figure 1 is a flowchart of a data processing method shown according to some embodiments.

[0012] Figure 2 is a schematic diagram of a modification operation shown according to some embodiments.

[0013] Figure 3 is a flowchart of a data processing method shown according to some other embodiments.

[0014] Figure 4 is a timing diagram of a data processing method shown according to some embodiments.

[0015] Figure 5 is a schematic structural diagram of a data processing apparatus shown according to some embodiments.

[0016] Figure 6 is a schematic structural diagram of a data processing apparatus shown according to some other embodiments.

[0017] Figure 7 is a schematic structural diagram of an electronic device shown according to some embodiments. Detailed Implementation

[0018] The embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. On the contrary, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not used to limit the protection scope of the present disclosure.

[0019] It should be understood that the various steps recorded in the method implementation of the present disclosure can be executed in different orders and / or in parallel. In addition, the method implementation can include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this regard.

[0020] As used herein, the term "including" and its variations are open-ended, i.e., "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". The relevant definitions of other terms will be given in the following description.

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

[0022] It should be noted that the modifications of "one" and "multiple" mentioned in this disclosure are illustrative rather than restrictive. Those skilled in the art should understand that, unless clearly specified otherwise in the context, it should be understood as "one or more".

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

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

[0025] For example, when responding to receiving an active request from a user, a prompt message is sent to the user to clearly prompt the user that the operation requested by the user will require obtaining and using the user's personal information. Thus, the user can autonomously choose whether to provide personal information to software or hardware such as an electronic device, an application program, a server, or a storage medium that performs the operations of the technical solutions of this disclosure according to the prompt message.

[0026] As an optional but non-limiting implementation manner, when responding to receiving an active request from a user, the manner of sending a prompt message to the user can be, for example, in the form of a pop-up window, and the prompt message can be presented in text in the pop-up window. In addition, the pop-up window can also carry selection controls for the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0027] It can be understood that the above process of notifying and obtaining user authorization is only illustrative and does not constitute a limitation on the implementation manners of this disclosure. Other manners that meet relevant laws and regulations can also be applied to the implementation manners of this disclosure.

[0028] Meanwhile, it can be understood that the data involved in the present technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of the corresponding laws, regulations and related provisions.

[0029] Figure 1 is a flowchart of a data processing method shown according to some embodiments. As Figure 1 shown, an embodiment of the present disclosure provides a data processing method, which can be executed by a client, specifically, can be executed by a data processing device, and the device can be implemented in a software and / or hardware manner and configured in the client. As Figure 1 shown, the method may include the following steps.

[0030] In step 110, in response to an editing operation of a first user on a target cell of a first spreadsheet, according to the old value of the target cell recorded locally and the new value corresponding to the editing operation, determine the editing intention corresponding to the editing operation.

[0031] Here, the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell.

[0032] The two-way data association means that a record in the first spreadsheet is associated with one or more records in the second spreadsheet, and the associated records in the second spreadsheet will be automatically associated back to the first spreadsheet. The user can directly view the records of the second spreadsheet in the target cell of the first spreadsheet, and support quickly jumping from the first spreadsheet to the second spreadsheet, and can jump back to the first spreadsheet with one key. Of course, the user can also directly view the records of the first spreadsheet in the target cell of the second spreadsheet. Among them, in the embodiments of the present disclosure, the record of the spreadsheet may refer to the row data in the spreadsheet. That is to say, each row in the spreadsheet represents a record.

[0033] The two-way data association is illustrated below by Table 1 and Table 2.

[0034] The user can establish a two-way data association between Table 1 and Table 2 through a two-way association field. When the two-way data association is established between Table 1 and Table 2, a column for representing the two-way data association will be displayed in Table 1. Similarly, a column for representing the two-way data association will also be displayed in Table 2. The cells under the column of the two-way data association in Table 1 are all target cells, and the cells under the column of the two-way data association in Table 2 are all target cells.

[0035] When a two-way data association is established between record A1 in Table 1 and record B1 in Table 2, record B1 in Table 2 is displayed under the target cell corresponding to record A1 in Table 1. Similarly, record A1 in Table 1 is displayed under the target cell corresponding to record B1 in Table 2, thus realizing the two-way data association between Table 1 and Table 2.

[0036] Table 1:

[0037] Table 2:

[0038] It should be understood that the two-way data association can be used to establish the data relationship between two spreadsheets, or to quickly view the entire row data of another spreadsheet across sheets without switching spreadsheets.

[0039] The editing operation of the first user on the target cell of the first spreadsheet may refer to the action of the first user modifying the content of the target cell in the first spreadsheet. For example, the editing operation may be to modify B1 in the target cell to B1, B2.

[0040] The old value of the target cell in the local record refers to the data value of the target cell in the 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 the maintained snapshot. It should be noted that when the snapshot of the first spreadsheet maintained locally on the client has not been updated, the old value of the target cell in the local record remains unchanged. 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 by 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 in the local record is updated to the data value of the target cell in the updated snapshot.

[0041] That is to say, on the premise that the snapshot of the first spreadsheet maintained on the client has not been 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.

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

[0043] In response to an editing operation, the client obtains the editing intention corresponding to the editing operation by comparing the old value of the target cell recorded locally with the new value corresponding to the editing operation. Here, the editing intention refers to the target expressed by the first user when performing an editing operation on the target cell.

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

[0045] It should be understood that in the embodiments of the present disclosure, the editing intention may include a first editing intention and / or a second editing intention. The first editing intention represents adding a data value, and the second editing intention represents deleting a data value. Among them, the first editing intention can be represented by the field addValue:[]. For example, the field addValue:[A5] represents adding the data value A5. The second editing intention can be represented by the field deleteValue:[]. For example, the field deleteValue:[A2] represents deleting the data value A2.

[0046] In step 120, according to the editing intention, a first modification operation including the editing intention is generated.

[0047] Here, the modification operation (change set, cs) is used to describe how to modify the data format of the spreadsheet. For example, an editing operation will generate a modification operation of setRecord (used to update or set the fields of the data record). The server applies the modification operation to update the snapshot of the spreadsheet, and the client applies the modification operation to update the data values of the spreadsheet to display the modified data values.

[0048] It should be noted that the modification operation can be a record in the global modification set. The global modification set records all modification operations on the spreadsheet, and these modification operations can be insertions, deletions, updates, etc. Each editing operation on the spreadsheet will generate a modification operation and add it to the global modification set. When it is necessary to update the data of the spreadsheet, the modification operation can be taken out from the global modification set and the modification operations can be applied in sequence.

[0049] In the embodiments of the present disclosure, the editing intention corresponding to the editing operation can be carried in the first modification operation to retain the editing intention of the first user for the target cell.

[0050] It should be noted that generally, the data set of a cell is updated in a covering manner, which may result in the loss of some users' operations. For example, in the scenario of collaborative editing of a spreadsheet, the old value of the target cell is [B1, B2]. If user A modifies the value of the target cell to [B1], the corresponding editing intention is to delete B2. If user B modifies the value of the target cell to [B1, B2, B3], the corresponding editing intention is to add B3. If user B's editing operation is later than user A's editing operation, when using covering update, the data value of the target cell is [B1, B2, B3]. Obviously, user A's editing operation is lost.

[0051] In the embodiments of the present disclosure, the editing intention of the first user is retained in the first modification operation. When the data of the target cell is updated subsequently, the data of the target cell can be updated according to the editing intention of the first user, so as to avoid losing the editing intention of any user for the target cell.

[0052] That is to say, in the present disclosure, the editing intention of each user for the target cell will be retained in the corresponding modification operation, so as to avoid losing the editing intention of the user for the target cell.

[0053] Figure 2 It is a schematic diagram of a modification operation shown according to some embodiments. The modification operation representing "bidirectional data association between record A1 of table A and records B1 and B2 of table B" can be represented as shown in Figure 2 the following code block. In the Figure 2 code block shown, the editing intention is retained in the modification record through the change field.

[0054] Therefore, the first modification operation is actually used to indicate the establishment of bidirectional data association between the first record of the first spreadsheet and the second record of the second spreadsheet, and this first modification operation can include the editing intention of the first user for the target cell corresponding to the first record.

[0055] In step 130, apply the first modification operation to the target cell to update the data displayed in the target cell.

[0056] Here, applying the first modification operation to the target cell may refer to executing the editing intention corresponding to the first modification operation on the target cell to update the data displayed in the target cell.

[0057] Exemplarily, the client receives the editing operation of the first user 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 including an editing intention 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 of the target cell, and notifies the view layer to render the table data of the first spreadsheet, so that the updated data is displayed in the target cell.

[0058] Among them, the view layer can be understood as the graphical user interface of the client for presenting the spreadsheet to the user. The control layer is the software layer for converting the editing operation into a first modification operation including an editing intention. The model layer can be the software layer for storing the table data included in the spreadsheet. The model layer can save the snapshot of the spreadsheet obtained from the server and provide the data required for display to the view layer. Of course, the model layer can also modify the data of the model layer by applying the modification operation. After the data is modified, the model layer notifies the view layer to re-render the table data. The data port is used to obtain the snapshot from the server and provide the snapshot to the model layer. At the same time, the data port can also receive the modification operations sent by the second user and / or the modification operations sent by the server and send the modification operations to the model layer. Therefore, the model layer can synchronize the modification operations of other users and / or the server without refreshing the page.

[0059] It is worth noting that since each editing operation on the target cell will be converted into a first modification operation including an editing intention, in the scenario of collaborative editing of the target cell by multiple users, the editing operations of multiple users on the target cell will all be converted into a first modification operation including the corresponding editing intention, so as to retain the editing intention of each user. When applying multiple first modification operations to the target cell, the editing intention of each user for the target cell can be reflected in the data of the target cell after the update.

[0060] Thus, by responding to the editing operation of the first user on the target cell of the first spreadsheet, determining the editing intention corresponding to the editing operation according to the old value of the target cell recorded locally and the new value corresponding to the editing operation, generating a first modification operation including the editing intention according to the editing intention, and applying the first modification operation to the target cell to update the data displayed in the target cell, the editing intention of the user for the target cell can be retained in the modification operation, avoiding the loss of the editing intention of any user. Especially in the scenario of collaborative editing of the cell, the two-way data association of multiple users for the cell can maintain the consistency of the two-way association and retain the editing intention of all users.

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

[0062] Here, the client can modify the old value of the target cell recorded locally using the editing intention 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.

[0063] For example, if the old value of the target cell is [B1, B2] and the editing intention of User 1 is to delete B2, then when applying the first modification operation to the target cell, the data of the target cell is modified to [B1].

[0064] For another example, in a collaborative editing scenario, if the editing intention of User 1 is to delete B2, the editing intention of User 2 is to add B3, and the editing operation of User 2 is later than that of User 1, then the modification operation for the target cell includes the first modification operation of User 1 and the first modification operation of User 2. Accordingly, based on the old value ([B1, B2]) of the target cell, applying the first modification operation of User 1 and the first modification operation of User 2 in sequence, the data of the target cell is first modified to [B1], and then based on [B1], the value of the target cell is modified to [B1, B3], and [B1, B3] is the final data value of the target cell. Therefore, the editing intentions of both User 1 and User 2 can be retained and executed.

[0065] It should be noted that in the embodiments of the present disclosure, the data update of the target cell no longer uses overwrite update, but incrementally applies the modification operation including the editing intention based on the old value of the target cell. In this way, in a collaborative editing scenario at the cell level, the editing intentions of all users for the same cell can be retained.

[0066] Thus, through the above embodiments, directly applying the editing intention included in the first modification operation based on the old value of the target cell to update the data of the cell can ensure that the editing intention of each user for the target cell will not be lost.

[0067] In some implementable embodiments, in step 120, the client can generate a first modification operation including the new value and the editing intention according to the new value corresponding to the editing operation and the editing intention.

[0068] 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 is to modify the data value of the target cell to [B1], then the new value corresponding to the edit operation is [B1].

[0069] That is to say, in the first modification operation, the new value corresponding to the edit operation and the edit intention corresponding to the edit operation can be carried. As Figure 2 shown, in the first modification operation, the new value corresponding to the edit operation is recorded through the field value: ['B1', 'B2']. In the first modification operation, the edit intention corresponding to the edit operation is recorded through the change field.

[0070] It should be understood that the new value corresponding to the edit operation can be understood as the data value obtained after applying the edit intention corresponding to the edit operation on the basis of the old value of the target cell recorded locally. For a non-collaborative editing scenario (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 a collaborative editing scenario for the target cell (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 of other users for the target cell.

[0071] In the present disclosure, the new value corresponding to the edit operation carried by the first modification operation is used to ensure the accuracy of the order of the data values in the target cell.

[0072] For example, if the old value of the target cell is [A1], and the new value corresponding to the edit operation for the target cell is [A2, A1] (indicating that the user not only adds A2 but also adjusts the order of A1 and A2), since the edit intention includes the above first edit intention and / or second edit intention, the order of A1 and A2 cannot be described in the edit intention. If the edit intention (adding A2) is directly applied on the basis of the old value [A1], then the data value of the target cell is [A1, A2]. However, in fact, the data value of the target cell should be [A2, A1].

[0073] Therefore, by carrying 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. That is to say, when applying the first modification operation to the target cell, the final order of the data in the target cell can be adjusted through the new value corresponding to the edit operation included in the first modification operation.

[0074] Accordingly, in step 130, the client can receive the third modification operation of the second user for the target cell, determine the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation, and then, based on the new value carried in the target modification operation, apply the editing intents corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and display the data value on the target cell.

[0075] Here, in the collaborative editing scenario for the target cell, the first user performs an editing operation on the target cell, generating a corresponding first modification operation, and the second user performs an editing operation on the target cell, generating a corresponding third modification operation. Among them, the third modification operation includes the new value and the editing intent corresponding to the editing operation of the second user for the target cell.

[0076] It should be noted that the manner of generating the third modification operation is the same as that of generating the first modification operation, and reference can be made to the relevant descriptions of the above embodiments, which will not be elaborated here. The client of the first user can receive the third modification operation of the second user for the target cell through the server, and the third modification operation carries the new value and the editing intent corresponding to the editing operation of the second user for the target cell.

[0077] In addition, the number of second users can be one or more. Accordingly, each second user will correspond to a third modification operation, and the corresponding new value and the editing intent corresponding to the editing operation of the second user for the target cell are carried in the third modification operation.

[0078] That is to say, in the collaborative editing scenario for the target cell, the modification operations for the target cell include at least one first modification operation and at least one third modification operation.

[0079] In the collaborative editing scenario for the target cell, if the editing intents included in the first modification operation and the third modification operation are directly applied in sequence based on the old value of the target cell, the accuracy of the order of the final data of the target cell cannot be guaranteed. If the new value carried in the modification operation with the largest version number among the first modification operation and the third modification operation is directly used as the final data of the target cell, the editing intents of some users will be lost.

[0080] Therefore, in the embodiments of the present 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 intents corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation are applied to obtain the data value corresponding to the target cell. In this way, not only can the data value of the target cell ensure the correct data order, but also the editing intent of each user can be reflected.

[0081] Among them, each modification operation can have a unique version number, and the size of the version number represents the order in which the server receives the modification operations. For example, the larger the version number of a modification operation, the later the server receives this modification operation. That is to say, the larger the version number of a modification operation, the newer its data value.

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

[0083] Therefore, based on the new value carried by the target modification operation, applying the editing intents corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation 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.

[0084] For example, the old value of the target cell is [A1, A2, A3]. In a collaborative editing scenario, assume that the first user modifies the data value of the target cell to [A1, A2, A4], and the corresponding editing intent is to delete A3 and add A4. Assume that 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). Assume that 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 included in the first modification operation corresponding to the first user (deleting A3 and adding A4), the final data value of the target cell is [A2, A1, A5, A4].

[0085] It should be noted that in the above example, only the collaborative editing of two users is used for illustration, which does not mean that only two users can perform collaborative editing on the target cell. If, in addition to the first modification operation of the first user, there are other modification operations on the target cell by other users, then based on the new value carried by the target modification operation, the other modification operations other than the target modification operation can be applied in sequence.

[0086] Thus, through the above-described embodiments, in the collaborative editing scenario for the target cell, not only can the accuracy of the data order of the final data value of the target cell be ensured, but also the editing intention of each user can be ensured not to be lost.

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

[0088] Here, 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. The second modification operation is used to indicate that a two-way data association is established between the second record in the second spreadsheet and the first record in the first spreadsheet.

[0089] It should be noted that the first modification operation is triggered by the first user, and the first modification operation is used to indicate that a two-way data association is established between the first record in the first spreadsheet and the second record in the second spreadsheet. In order to enable a two-way data association to be established between the first record in the first spreadsheet and the second record in the second spreadsheet, it is also necessary to indicate that a two-way data association is established between the second record in the second spreadsheet and the first record in the first spreadsheet. In the embodiments of the present disclosure, the server instructs the client to establish a two-way data association between the second record in the second spreadsheet and the first record in the first spreadsheet.

[0090] For example, the first modification operation corresponding to the first user indicates that a two-way data association is established between record A1 in table A and record B1 in table B. In order to enable record A1 in table A to be directly viewed in table B, the server needs to resend a second modification operation to the client indicating that a two-way data association is established between record B1 in table B and record A1 in table A. After the client executes the second modification operation, a two-way data association is formed between record A1 in table A and record B1 in table B.

[0091] It should be understood that the first modification operation and the second modification operation mainly differ in the acting subject. The first modification operation acts on the first spreadsheet, enabling the target cell of the first spreadsheet to display the second record of the second spreadsheet. The second modification operation acts on the second spreadsheet, enabling the corresponding target cell of the second spreadsheet to display the first record of the first spreadsheet, so that a two-way data association can be achieved between the first record of the first spreadsheet and the second record of the second spreadsheet.

[0092] By the server sending the second modification operation to the client, the user only needs to establish a two-way data association for one of the first spreadsheet and the second spreadsheet, and the server will automatically help the user establish the two-way data association in the reverse direction, greatly improving the efficiency of the two-way data association.

[0093] It should be noted that, based on the first modification operation, the server generates a corresponding second modification operation. Since the first modification operation carries an editing intention, the two-way data association in the reverse direction can be determined through the editing intention, thereby generating a corresponding second modification operation. For example, if the first modification operation indicates that "record A1 in table A is associated with record B1 in table B", the corresponding editing intention is to add B1 to the target cell corresponding to record A1. Correspondingly, the second modification operation should be used to indicate that "record B1 in table B is associated with record A1 in table A", and the corresponding editing intention is to add A1 to the target cell corresponding to record B1.

[0094] After the client receives the second modification operation reissued by the server, the client applies the second modification operation to the second spreadsheet to update the data displayed in the second spreadsheet.

[0095] Continuing with the above-described embodiment, 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 applying the editing intention included in the second modification operation to obtain the data value corresponding to the target cell.

[0096] Of course, continuing with the above-described embodiment, in a collaborative editing scenario, applying the 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 intention corresponding to the modification operations other than the target modification operation.

[0097] That is to say, 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, and the relevant descriptions of the above-described embodiment can be referred to.

[0098] Thus, through the above-described embodiment, the user only needs to establish a two-way data association for one of the first spreadsheet and the second spreadsheet, and the server will automatically help the user establish a two-way data association in the reverse direction by reissuing the second modification operation, greatly improving the efficiency of two-way data association.

[0099] Figure 3 It is a flowchart of a data processing method shown according to some other embodiments. As Figure 3 shown, the embodiments of the present disclosure provide a data processing method, which can be executed by a server, specifically, can be executed by a data processing device, and the device can be implemented in a software and / or hardware manner and configured in the server. As Figure 3 shown, the method may include the following steps.

[0100] S310, receiving a first modification operation sent by a client, the client being used to respond to an edit operation of a target cell of a first electronic form by a first user, determine an edit intent corresponding to the edit operation according to 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 intent according to the edit intent; the target cell is a cell for displaying a second record of a second electronic form that establishes a bidirectional data association with the first record corresponding to the target cell; the first modification operation is used to indicate that a bidirectional data association is established between the first record of the first electronic form and the second record of the second electronic form; S320, generating a second modification operation according to the first modification operation; the second modification operation is used to instruct the second record in the second electronic form to establish a bidirectional data association with the first record in the first electronic form; S330: Send a second modification operation to the client, where the second modification operation is used to enable the client to apply the second modification operation to the second electronic form to update data displayed in the second electronic form.

[0101] Here, the server is used to generate a second modification operation based on the first modification operation, and establish a bidirectional data association between the first record of the first electronic form and the second record of the second electronic form by re-issuing the second modification operation for indicating that the second record in the second electronic form is to establish a bidirectional data association with the first record of the first electronic form to the client, thereby enabling the second record of the second electronic form to be directly viewed in the target cell of the first electronic form and the first record of the first electronic form to be directly viewed in the target cell of the second electronic form, and supporting fast jumping from the first electronic form to the second electronic form, and one-click jumping from the second electronic form back to the first electronic form.

[0102] It is worth noting that, for the detailed description of the above steps S310 to S330, reference can be made to the relevant description of the implementation method on the client side, which will not be repeated here.

[0103] Therefore, through the above steps S310 to S330, the user only needs to establish a bidirectional data association between one of the first electronic form and the second electronic form, and the server will automatically help the user establish a bidirectional data association in the opposite direction by reissuing the second modification operation, which greatly improves the efficiency of the bidirectional data association. Moreover, since the first modification operation contains the editing intention of the first user, the user's editing intention for the target cell can be retained in the modification operation to avoid losing the editing intention of any user. Especially in the scenario of collaborative editing of cells, the bidirectional data association of multiple users for the cell can maintain the consistency of the bidirectional association and retain the editing intention of all users.

[0104] In some implementable embodiments, the server can also apply a first modification operation to the snapshot of the first spreadsheet to update the snapshot of the first spreadsheet, and apply a second modification operation to the snapshot of the second spreadsheet to update the snapshot of the second spreadsheet.

[0105] Here, the server is further configured to receive the 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. Further, the server is further configured to apply the second modification operation to the snapshot of the second spreadsheet by reissuing the second modification operation to the client to update the snapshot of the second spreadsheet.

[0106] In some embodiments, based on the old value of the target cell in the snapshot of the first spreadsheet recorded locally, the editing intention 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.

[0107] It should be noted that the logic of applying the editing intention included in the first modification operation based on the old value of the target cell in the snapshot of the first spreadsheet recorded locally is the same as the logic described in the above embodiments of applying the editing intention included in the first modification operation based on the old value of the target cell recorded locally, and will not be elaborated here.

[0108] It should be noted that the snapshot update policy of the second spreadsheet is the same as that of the first spreadsheet, and will not be elaborated here. That is, based on the old value of the target cell in the snapshot of the second spreadsheet recorded locally, the editing intention 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.

[0109] In some other embodiments, the client is configured to generate a first modification operation including a new value and an editing intention according to the new value and the editing intention corresponding to the editing operation. For a detailed description of the first modification operation, reference can be made to the relevant description in the above embodiments, and will not be elaborated here.

[0110] Correspondingly, the server can receive a third modification operation of the second user for the target cell, determine the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation, and then, based on the new value carried in the target modification operation, apply the editing intentions corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and update the snapshot of the first spreadsheet based on the data value.

[0111] Here, the third modification operation includes the new value and the editing intention corresponding to the editing operation of the second user for the target cell.

[0112] It should be noted that the logic for obtaining the data values for updating the snapshot of the first spreadsheet is the same as the logic for obtaining the data values displayed on the target cell described in the above embodiments. The main difference lies in the different application entities, which will not be elaborated here.

[0113] It should be noted that the snapshot update policy for the second spreadsheet is the same as that for the first spreadsheet, which will not be elaborated 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 updates the snapshot of the second spreadsheet through the fourth modification operation.

[0114] Figure 4 is a timing diagram of a data processing method shown according to some embodiments. As Figure 4 shown, it may include the following steps: S501, the first user triggers an edit operation at the view layer; S502, the view layer sends the edit operation to the control layer; S503, the control layer generates a first modification operation; wherein, the first modification operation may include the new value and the edit intention corresponding to the edit operation of the first user; S504, the control layer sends the first modification operation to the data port; S505, the control layer sends the first modification operation to the model layer; wherein, steps S504 and S505 may be performed synchronously; S506, the model layer applies the first modification operation; wherein, for a detailed description of the model layer applying the first modification operation, reference may be made to the relevant descriptions in the above embodiments. The model layer applies the first modification operation to modify the data of the spreadsheet; S507, the model layer notifies the view layer of the data update; S508, the view layer renders the table data; wherein, the view layer may pull the table data after applying the first modification operation from the model layer and use the table data for rendering; 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 according to the first modification operation to complete the two-way data association between the first spreadsheet and the second spreadsheet through the second modification operation; S510, the server generates a second modification operation; S511, the server sends the second modification operation to the data port; S512, the data port sends the second modification operation to the model layer; S513. The model layer applies a second modification operation. The logic of the model layer applying the second modification operation is the same as that of the model layer applying the first modification operation. S514. The model layer notifies the view layer of data update. S515. Render the table data. The view layer can pull the table data after applying the second modification operation from the model layer and use the table data for rendering.

[0115] In the collaborative editing scenario, the second user can also synchronously edit the target cell. Correspondingly, as Figure 4 shown, the following steps may be included: S601. The second user sends a third modification operation to the server. The concept of the third modification operation is the same as that of the first modification operation, and the way of generating the third modification operation is the same as that of generating the first modification operation. S602. The server generates a fourth modification operation. The concept of the fourth modification operation is the same as that of the second modification operation, and the way of generating the fourth modification operation is the same as that of generating the second modification operation. The server completes the two-way data association of the first spreadsheet and the second spreadsheet initiated by the second user through the fourth modification operation. S603. The server sends the third modification operation and the fourth modification operation to the data port. S604. The data port sends the third modification operation and the fourth modification operation to the model layer. S605. The model layer applies the third modification operation and the fourth modification operation respectively. S606. The model layer notifies the view layer of data update. S607. The view layer renders the table data.

[0116] It should be noted that the steps S601 to S607 corresponding to the second user and the steps S510 to S515 corresponding to the first user may not be distinguished by the order.

[0117] Of course, as Figure 4 shown, the following steps may also be included: 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.

[0118] Among them, the server will apply the first modification operation, the second modification operation, the third modification operation and the fourth modification operation respectively to update the snapshots of the first spreadsheet and the second spreadsheet. It should be noted that the updated snapshots will also be sent to the client to update the snapshots maintained by the client.

[0119] Figure 5It is a schematic structural diagram of a data processing device shown according to some embodiments. As Figure 5 shown, an embodiment of the present disclosure provides a data processing device 500 configured in a client. The data processing device 500 includes: A determination module 501 configured to, in response to an editing operation of a target cell of a first spreadsheet by a first user, determine an editing intention corresponding to the editing operation according to an old value of the target cell recorded locally and a new value corresponding to the editing operation; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; A first generation module 502 configured to generate a first modification operation including the editing intention according to the editing intention, and the first modification operation is used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association; A first update module 503 configured to apply the first modification operation to the target cell to update data displayed in the target cell.

[0120] Optionally, the data processing device 500 further includes: A first sending module configured to send the first modification operation to a server, and the server is configured 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 a second record in the second spreadsheet and the first record of the first spreadsheet establish a two-way data association; A first receiving module configured to receive the second modification operation sent by the server and apply the second modification operation to the second spreadsheet to update data displayed in the second spreadsheet.

[0121] Optionally, the first update module 503 is specifically configured to: Based on the old value of the target cell recorded locally, apply the editing intention included in the first modification operation to obtain a data value corresponding to the target cell, and display the data value on the target cell.

[0122] Optionally, the first generation module 502 is specifically configured to: Generate a first modification operation including the new value and the editing intention according to the new value corresponding to the editing operation and the editing intention.

[0123] Optionally, the first update module 503 is specifically configured to: Receive a third modification operation of the second user for the target cell, where the third modification operation includes a new value and an editing intention corresponding to the editing operation of the second user for the target cell; Determine the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation; Based on the new value carried in the target modification operation, apply the editing intentions corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and display the data value on the target cell.

[0124] The functional logics executed by the respective functional modules in the above data processing apparatus 500 have been described in detail in the section regarding the method, and will not be elaborated here.

[0125] Figure 6 It is a schematic structural diagram of a data processing apparatus shown according to some other embodiments. As Figure 6 shown, an embodiment of the present disclosure provides a data processing apparatus 600, configured in a server, and the data processing apparatus 600 includes: A second receiving module 601, configured to receive a first modification operation sent by a client, where the client is used to respond to an editing operation of a first user for a target cell of a first spreadsheet, determine an editing intention corresponding to the editing operation according to an old value of the target cell recorded locally and a new value corresponding to the editing operation, and generate a first modification operation including the editing intention according to the editing intention; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; the first modification operation is used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association; A second generating module 602, configured to generate a second modification operation according to the first modification operation; the second modification operation is used to indicate that a second record in the second spreadsheet and the first record of the first spreadsheet establish a two-way data association; A second sending module 603, configured to send the second modification operation to the client, and the second modification operation is used to cause the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

[0126] Optionally, the data processing apparatus 600 further includes: A second update module, configured to apply the first modification operation to a snapshot of the first spreadsheet, update the snapshot of the first spreadsheet, and apply the second modification operation to a snapshot of the second spreadsheet, update the snapshot of the second spreadsheet.

[0127] Optionally, the second update module is specifically configured to: Based on the old value of the target cell of the snapshot of the first spreadsheet recorded locally, apply the editing intention included in the first modification operation to obtain the data value corresponding to the target cell, and update the snapshot of the first spreadsheet based on the data value.

[0128] Optionally, the client is used to generate a first modification operation including the new value and the editing intention according to the new value corresponding to the editing operation and the editing intention; The second update module is specifically configured to: Receive a third modification operation of the second user for the target cell, where the third modification operation includes the new value and the editing intention corresponding to the editing operation of the second user for the target cell; Determine the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation; Based on the new value carried in the target modification operation, apply the editing intentions corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and update the snapshot of the first spreadsheet based on the data value.

[0129] The functional logics executed by the respective functional modules in the above data processing apparatus 600 have been described in detail in the section regarding the method, and will not be elaborated here.

[0130] Next, referring to Figure 7 , which shows a schematic structural diagram of an electronic device (such as a client or a server) 700 suitable for implementing the embodiments of the present disclosure. The client in the embodiments of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Tablet Computers), PMPs (Portable Multimedia Players), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 7 The illustrated electronic device is merely an example and should not impose any limitation on the functions and usage scope of the embodiments of the present disclosure.

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

[0132] Generally, the following devices may be connected to the I / O interface 705: an input device 706 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 707 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 708 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 709. The communication device 709 may allow the electronic device 700 to communicate with other devices wirelessly or wiredly to exchange data. Although Figure 7 the electronic device 700 with various devices is shown, it should be understood that it is not required to implement or have all the shown devices. Instead, more or fewer devices may be implemented or had.

[0133] Specifically, according to an embodiment of the present disclosure, the process described above with reference to the flowchart may be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program contains program codes for executing the method shown in the flowchart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication device 709, or installed from the storage device 708, or installed from the ROM 702. When the computer program is executed by the processing device 701, the above functions defined in the method of the embodiment of the present disclosure are executed.

[0134] It should be noted that the computer-readable medium described above in this disclosure can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. 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 of the above. More specific examples of a computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores 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 a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium can also 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 conjunction with an instruction execution system, apparatus, or device. The program code contained on a computer-readable medium can be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.

[0135] In some embodiments, the client and the server can communicate using any currently known or future-developed network protocol such as HTTP (HyperText Transfer Protocol), and can be interconnected with digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include local area networks ("LAN"), wide area networks ("WAN"), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad hoc end-to-end networks), as well as any currently known or future-developed networks.

[0136] The above computer-readable medium can be included in the above electronic device; or it can exist separately without being assembled into the electronic device.

[0137] The above computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: in response to an editing operation of a target cell of a first spreadsheet by a first user, determine an editing intention corresponding to the editing operation according to the old value of the target cell recorded locally and the new value corresponding to the editing operation; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; generate a first modification operation including the editing intention according to the editing intention, the first modification operation being used to indicate that the first record of the first spreadsheet and the second record of the second spreadsheet establish a two-way data association; apply the first modification operation to the target cell to update the data displayed in the target cell.

[0138] Alternatively, the above computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: receive a first modification operation sent by a client, the client being used to, in response to an editing operation of a target cell of a first spreadsheet by a first user, determine an editing intention corresponding to the editing operation according to 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 intention according to the editing intention; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; the first modification operation is used to indicate that the first record of the first spreadsheet and the second record of the second spreadsheet establish a two-way data association; generate 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 spreadsheet and the first record of the first spreadsheet establish a two-way data association; 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 to update the data displayed in the second spreadsheet.

[0139] Computer program code for performing the operations of this disclosure may be written in one or more programming languages or combinations thereof. The foregoing programming languages include, but are not limited to, object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).

[0140] 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 the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of code that contains one or more executable instructions for implementing the specified logical function. It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur in a different order than noted in the drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, or they may sometimes be executed in the 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 by a dedicated hardware-based system that performs the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.

[0141] The modules described in the embodiments of the present disclosure may be implemented in software or in hardware. In some cases, the name of the module does not constitute a limitation on the module itself.

[0142] The functions described above herein may be performed, at least in part, by one or more hardware logic components. By way of example, and not limitation, exemplary types of hardware logic components that may be used 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 the like.

[0143] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in connection 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 include, 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 a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0144] The above description is only a preferred embodiment of the present disclosure and an explanation of the applied technical principles. Those skilled in the art should understand that the scope of disclosure involved in the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, and should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosure concept. For example, the technical solutions formed by mutually replacing the above features with the technical features (but not limited to) having similar functions disclosed in the present disclosure.

[0145] In addition, although the operations are depicted in a particular order, this should not be understood as requiring that the operations be performed in the particular order shown or in sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, although a number of specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments can also be implemented combinatorially in a single embodiment. Conversely, the various features described in the context of a single embodiment can also be implemented separately or in any suitable sub-combination in multiple embodiments.

[0146] Although the subject matter has been described in language specific to structural features and / or methodological logical acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms for implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method, and will not be elaborated herein.

Claims

1. A data processing method, characterized in that, Executed by the client, the method includes: In response to an edit operation of a target cell of a first spreadsheet by a first user, determining an edit intention corresponding to the edit operation according to the old value of the target cell recorded locally and the new value corresponding to the edit operation; the target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell; Generating a first modification operation including the edit intention according to the edit intention, the first modification operation being used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association; Applying the first modification operation to the target cell to update the data displayed in the target cell.

2. The method according to claim 1, wherein The method further includes: Sending the first modification operation to the server, the server being used to generate a second modification operation according to the first modification operation and send the second modification operation to the client, the second modification operation being used to indicate that a second record in the second spreadsheet and the first record of the first spreadsheet establish a two-way data association; Receiving the second modification operation sent by the server and applying the second modification operation to the second spreadsheet to update the data displayed in the second spreadsheet.

3. The method according to claim 1 or 2, characterized in that, The applying the first modification operation to the target cell to update the data displayed in the target cell includes: Based on the old value of the target cell recorded locally, applying the edit intention included in the first modification operation to obtain the data value corresponding to the target cell, and displaying the data value on the target cell.

4. The method according to claim 1 or 2, characterized in that, The generating a first modification operation including the edit intention according to the edit intention includes: Generating a first modification operation including the new value and the edit intention according to the new value corresponding to the edit operation and the edit intention.

5. The method according to claim 4, wherein The applying the first modification operation to the target cell to update the data displayed in the target cell includes: Receiving a third modification operation of the second user for the target cell, the third modification operation including the new value and the edit intention corresponding to the edit operation of the second user for the target cell; Determining the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation; Based on the new value carried in the target modification operation, applying the edit intentions corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and displaying the data value on the target cell.

6. A data processing method, characterized in that, Executed by the server, the method includes: Receive a first modification operation sent by a client. The client is used to, in response to an editing operation of a first user on a target cell of a first spreadsheet, determine an editing intention corresponding to the editing operation according to 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 intention according to the editing intention. The target cell is a cell for displaying a second record of a second spreadsheet that establishes a two-way data association with a first record corresponding to the target cell. The first modification operation is used to indicate that a first record of the first spreadsheet and a second record of the second spreadsheet establish a two-way data association. Generate a second modification operation according to the first modification operation. The second modification operation is used to indicate that a second record in the second spreadsheet and the first record of the first spreadsheet establish a two-way data association. Send the second modification operation to the client. The second modification operation is used to enable the client to apply the second modification operation to the second spreadsheet and update the data displayed in the second spreadsheet.

7. The method according to claim 6, wherein The method further includes: Apply the first modification operation to a snapshot of the first spreadsheet to update the snapshot of the first spreadsheet, and apply the second modification operation to a snapshot of the second spreadsheet to update the snapshot of the second spreadsheet.

8. The method according to claim 7, wherein The applying the first modification operation to a snapshot of the first spreadsheet to update the snapshot of the first spreadsheet includes: Based on the old value of the target cell in the snapshot of the first spreadsheet recorded locally, apply the editing intention included in the first modification operation to obtain the data value corresponding to the target cell, and update the snapshot of the first spreadsheet based on the data value.

9. The method according to claim 7, characterized in that The client is used to generate a first modification operation including the new value and the editing intention according to the new value corresponding to the editing operation and the editing intention. The applying the first modification operation to a snapshot of the first spreadsheet to update the snapshot of the first spreadsheet includes: Receive a third modification operation of a second user on the target cell. The third modification operation includes the new value and the editing intention corresponding to the editing operation of the second user on the target cell. Determine the modification operation with the largest version number among the first modification operation and the third modification operation as the target modification operation. Based on the new value carried in the target modification operation, apply the editing intentions corresponding to the modification operations other than the target modification operation among the first modification operation and the third modification operation to obtain the data value corresponding to the target cell, and update the snapshot of the first spreadsheet based on the data value.

10. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processing device, it implements the steps of the method according to any one of claims 1-5, or implements the steps of the method according to any one of claims 6-9.

11. An electronic device, characterized in that, It includes: A storage device on which a computer program is stored; A processing device for executing the computer program in the storage device to implement the steps of the method according to any one of claims 1-5, or to implement the steps of the method according to any one of claims 6-9.

12. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1-5, or implements the steps of the method according to any one of claims 6-9.

Citation Information

Patent Citations

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

    CN107943777A

  • Online table editing method and device, equipment and storage medium

    CN111368519A

  • Web end interaction management method and device, storage medium and electronic equipment

    CN114780504A

  • Form operation method and device

    CN115455915A

  • Scenario table modification method and device, electronic equipment and storage medium

    CN115935931A