Spreadsheet-based application development method, device, equipment and storage medium
Patent Information
- Application Number
- CN202211291388.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-20
- Filing Date
- 2022-10-19
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2042-10-19
AI Technical Summary
实际应用中,使用电子表格维护数据,容易出现数据被覆盖、信息泄露、无法追溯填写人以及移动端填写不便等问题
[0010] In this embodiment, text extraction, preprocessing, and header recognition are performed sequentially on the spreadsheet to obtain field data for at least one header field. Application development is then based on this data. This provides a method for applying spreadsheet applications, effectively addressing the application of complex spreadsheets, significantly improving the development efficiency of spreadsheet applications, and enhancing the data security and maintainability of spreadsheets.
Smart Images

Figure CN115686455B_ABST
Abstract
Description
[0001] Cross-references
[0002] This application incorporates Chinese Patent Application No. 2021112236157, filed on October 20, 2021, entitled “Form-based Application Building Method and System”, which is incorporated herein by reference in its entirety. Technical Field
[0003] This application relates to the field of computer development technology, and in particular to a method, apparatus, device and storage medium for developing spreadsheet-based applications. Background Technology
[0004] Currently, businesses typically use spreadsheets for information collection and data analysis. However, in practice, using spreadsheets to maintain data can easily lead to problems such as data overwriting, information leakage, inability to trace the person who filled out the form, and inconvenience in filling out forms on mobile devices. Summary of the Invention
[0005] This application provides a method, apparatus, device, and storage medium for developing spreadsheet-based applications, thereby enabling the application of spreadsheets and improving the data security and maintainability of spreadsheets.
[0006] This application provides a spreadsheet-based application development method, comprising: extracting text from a spreadsheet to obtain text data; preprocessing the spreadsheet based on the text data to obtain a target spreadsheet; identifying the header area of the target spreadsheet; obtaining field data of at least one header field associated with the header area from the text data; and generating an application based on the field data of the at least one header field.
[0007] This application also provides a spreadsheet-based application development apparatus, comprising: an extraction module for extracting text from a spreadsheet to obtain text data; a preprocessing module for preprocessing the spreadsheet based on the text data to obtain a target spreadsheet; an identification module for identifying the header area of the target spreadsheet; an acquisition module for acquiring field data of at least one header field associated with the header area from the text data; and a generation module for generating an application based on the field data of at least one header field.
[0008] This application also provides an electronic device, including: a memory and a processor; the memory for storing a computer program; and the processor coupled to the memory for executing the computer program to perform steps in a spreadsheet-based application development method.
[0009] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, enables the processor to implement the steps in a spreadsheet-based application development method.
[0010] In this embodiment, text extraction, preprocessing, and header recognition are performed sequentially on the spreadsheet to obtain field data for at least one header field. Application development is then based on this data. This provides a method for applying spreadsheet applications, effectively addressing the application of complex spreadsheets, significantly improving the development efficiency of spreadsheet applications, and enhancing the data security and maintainability of spreadsheets. Attached Figure Description
[0011] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0012] Figure 1 An exemplary application scenario diagram provided for an embodiment of this application;
[0013] Figure 2 A flowchart illustrating a spreadsheet-based application development method provided in this application embodiment;
[0014] Figure 3 An example spreadsheet;
[0015] Figure 4 for Figure 3 The spreadsheet shown is an application interface within the corresponding application.
[0016] Figure 5 for Figure 3 The spreadsheet shown is another application interface within the application corresponding to that application.
[0017] Figure 6 for Figure 3 The spreadsheet shown is another application interface within the application corresponding to that application.
[0018] Figure 7 A schematic diagram of the structure of a spreadsheet-based application development device provided in this application embodiment;
[0019] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0020] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0021] In the embodiments of this application, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the access relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone, where A and B can be singular or plural. In the textual description of this application, the character " / " generally indicates that the preceding and following associated objects have an "or" relationship. Furthermore, in the embodiments of this application, "first," "second," "third," "fourth," "fifth," and "sixth" are only used to distinguish the content of different objects and have no other special meaning.
[0022] Currently, enterprises typically use spreadsheets for information collection and data statistics. However, in practical applications, using spreadsheets to maintain data can easily lead to problems such as data overwriting, information leakage, inability to trace the person who filled out the form, and inconvenience in filling out forms on mobile devices. Therefore, this application provides a method, apparatus, device, and storage medium for application development based on spreadsheets. In this application embodiment, text extraction, preprocessing, and header recognition are performed sequentially on the spreadsheet to obtain field data for at least one header field. Application development is then performed based on this data. This provides a way to apply spreadsheets effectively, significantly improving the efficiency of developing complex spreadsheet applications, and enhancing the data security and maintainability of spreadsheets.
[0023] Figure 1 This diagram illustrates an exemplary application scenario provided for an embodiment of this application. In this scenario, spreadsheet applications can be implemented, allowing users to manage and maintain data using an application (App) derived from a spreadsheet, significantly improving data security and maintainability. Specifically, for ease of understanding and distinction, the user with spreadsheet application needs is referred to as the first user, see [link to relevant documentation]. Figure 1 As shown in ①, the first user sends the spreadsheet that needs to be applied to the server via a terminal device. See also... Figure 1As shown in ②, the server performs a text extraction operation to extract text data from the spreadsheet. The text data includes not only the text content of each cell in the spreadsheet but also the position information of the cell corresponding to the extracted text content within the spreadsheet. After extracting the text data from the spreadsheet, see [link to relevant documentation]. Figure 1 As shown in ③, the server performs preprocessing operations. Specifically, the server can segment the spreadsheet based on the extracted text data to extract the largest possible content blocks from the spreadsheet. Figure 1 In this process, after content segmentation, multiple content blocks in the spreadsheet can be identified, and the largest content block (block 1) can be selected from these blocks. Next, the largest content block, i.e., content block 1, is cropped, and the resulting table is called the target table. See also... Figure 1 As shown in ④, after the server cuts out the target table from the spreadsheet, it identifies the header area of the target table. The header area mainly serves to identify column data. Each cell in the header area records the column header of the column it belongs to. For example, in an employee information table, the cells in the header area record the column headers: serial number, gender, age, and position, etc. For ease of understanding and differentiation, the fields associated with the header area are called header fields. The field name of the header field is located in the cell of the header area, and the field value of the header field is located in the cell of the column containing the field name. It should be understood that the field name of the header field is also the column header, and the field values of each field belonging to the same column header constitute the column data. After identifying the header area of the target table, based on the location information of the header area in the spreadsheet, at least one header field name and field value can be obtained from the text data of the spreadsheet, and the data type of the corresponding field value for each header field can be analyzed. See also... Figure 1 As shown in ⑤, the server provides at least one header field's data to the Low-Code Development Platform (LCDP). See also Figure 1 As shown in ⑥, the low-code development platform develops applications based on its maintained page component library. A low-code development platform is a platform that allows for the rapid generation of applications with little or no coding. For example, a low-code development platform provides a page component library containing a large number of page components, each encapsulating source code to implement a specific function. The low-code development platform can generate an application using one or more page components, thereby greatly improving application development efficiency and reducing the programming skills required of developers.
[0024] Figure 1As shown in ⑦ and ⑧, the application developed by the low-code development platform is provided to the first user's terminal device via the server. Taking an application consisting of a homepage, a data management page, and a form submission page as an example, when the first user opens the application on their terminal device, the application's homepage is displayed on the device's screen, showing links to the data management page and the form submission page. When the first user triggers the data management page link, the terminal device displays the data management page for viewing and managing data. When the first user triggers the form submission page link, the terminal device displays the form submission page for filling in and submitting data. In some application scenarios, see [link to relevant documentation]. Figure 1 As shown in ⑨, a first user can push the application to multiple second users, who are different from the first user. Each second user opens the application on their terminal device, enters a form submission page, fills in the data, and, upon completion, triggers the submit control on the form submission page to submit the data to the first user's terminal device. See also... Figure 1 As shown in ⑩, the data entered by each second user can be synchronized to the data management page to achieve data aggregation and facilitate data maintenance and management.
[0025] In some application scenarios, such as group chats, the first user can set the operation permissions for each second user on the application. For example, some second users may have permission to view, share, or modify all pages in the application, while others may only have permission to view, share, or modify some pages, and still others may only have permission to view some pages. The specific permission control can be set by the first user as needed.
[0026] In the embodiments of this application, the terminal device includes, but is not limited to, mobile phones, tablets, laptops, wearable devices, and in-vehicle devices. The server includes, but is not limited to, a single server or a distributed server cluster composed of multiple servers. It should be understood that... Figure 1 The number of servers and terminal devices shown is merely illustrative. Figure 1 The application scenario shown is merely an example, and the embodiments of this application do not limit the application scenario.
[0027] The technical solutions provided by the various embodiments of this application are described in detail below with reference to the accompanying drawings.
[0028] Figure 2 This is a flowchart illustrating a spreadsheet-based application development method provided in an embodiment of this application. The method can be executed by a spreadsheet-based application development device, which can consist of software and / or hardware and is generally integrated into an electronic device. See also... Figure 2 The method may include the following steps:
[0029] 201. Extract text from the spreadsheet to obtain text data.
[0030] 202. Preprocess the spreadsheet based on the text data to obtain the target spreadsheet.
[0031] 203. Identify the header area of the target table.
[0032] 204. Extract field data of at least one header field associated with the header area from the text data.
[0033] 205. Generate an application based on field data from at least one header field.
[0034] Specifically, a spreadsheet can be any type of tabular document. In practical applications, there are no restrictions on how text can be extracted from a spreadsheet. For example, various text extraction functions such as LEFT(), RIGHT(), and MID() can be used to extract text from a spreadsheet. The LEFT() function extracts a specified number of characters starting from the left of the text in the spreadsheet. RIGHT() extracts a specified number of characters starting from the right of the text in the spreadsheet. MID() extracts a specified number of characters starting from a specified position in the text in the spreadsheet. Another example is using appropriate regular expressions to extract text from a spreadsheet. Yet another example is converting the spreadsheet into an image and using OCR (Optical Character Recognition) technology to process the image to obtain the text data from the spreadsheet. Of course, the methods for extracting text from a spreadsheet are not limited to the examples above; for more information, please refer to relevant technical resources.
[0035] It is worth noting that if the spreadsheet includes multiple sub-sheets, steps 201 to 205 are performed for each sub-sheet. For example, if a spreadsheet has multiple table pages, and a table page can be considered a sub-sheet of the spreadsheet, then steps 201 to 205 are performed for each table page. Of course, applications with multiple sub-sheets can be integrated together to form a complete application.
[0036] In this embodiment, the text data extracted from the spreadsheet includes, but is not limited to, at least one text content and the location information of the cell containing each text content within the spreadsheet. Considering that different users have different spreadsheet-making habits, spreadsheets exhibit diverse characteristics, resulting in varying levels of complexity. For example, some spreadsheets are relatively simple, with the first row being the header area and subsequent rows containing detailed data. Other spreadsheets are more complex, containing header rows, memo rows, header areas, detailed areas, and non-detailed areas containing non-detailed data. Still other spreadsheets are complex, with cell merging in the header area, detailed areas, and non-detailed areas, and the cell merging methods vary.
[0037] Considering the varying complexity of spreadsheets, to reduce the development difficulty of spreadsheet applications, the spreadsheet is preprocessed to obtain a target table that records detailed data, also known as the detail table. Specifically, after extracting text data from the spreadsheet, the spreadsheet is segmented and cropped using the text data to obtain the target table. The segmentation operation identifies table regions in the spreadsheet with a high probability of recording detailed data. These regions are then further cropped to obtain table regions containing only detailed data, which are then used as the target table.
[0038] In practical applications, the initial table may contain header rows, note rows, or rows with merged cells. The data recorded in these rows is not detailed data and needs to be cropped out during the trimming process. Some initial tables may also record non-detailed data in addition to detailed data; rows containing non-detailed data should be removed during trimming. Therefore, alternatively, to obtain a more accurate target table, one possible implementation for trimming the initial table is to identify invalid, non-detailed, and detailed areas in the initial table; trim the invalid and non-detailed areas in the initial table, and use the undragged detailed areas as the target table.
[0039] Specifically, an invalid region refers to a table area consisting of several invalid rows. Considering practical applications, invalid rows often exist at the beginning and / or end of the initial table. Therefore, when identifying invalid regions in the initial table, each row can be checked sequentially (either in ascending order of row number or descending order of row number) until a valid row is found. The area consisting of at least one invalid row is then defined as an invalid region. Specifically, invalid regions can be identified starting from the beginning, i.e., from the first row of the initial table. If the first row is invalid, the next row is checked, and so on, until the first valid row is found. The area consisting of all rows before the first valid row is then defined as an invalid region. Alternatively, invalid regions can be identified starting from the end, i.e., from the last row of the initial table. If the last row is invalid, the next row is checked, and so on, until the first valid row is found. The area consisting of all rows after the first valid row is then defined as an invalid region.
[0040] In practical applications, the definition of invalid rows can be set as needed. Invalid rows include, but are not limited to: rows where all cells have been merged, header rows containing title information, note rows containing remarks, or rows containing summary information; there are no restrictions on these. Therefore, as an example, each row in the initial table is sequentially identified as invalid, including: for the current row to be identified, determining whether the current row contains at least one of the following: remarks, header information, or merged cells; if the result is yes, the current row is determined to be invalid; if the result is no, the current row is determined to be valid.
[0041] In this embodiment, after identifying invalid areas in the initial table, non-detailed areas and detailed areas in the initial table can be identified. Detailed areas are primarily table areas that record detailed data, while non-detailed areas record business data, but not detailed data. See also Figure 3 The supplier reconciliation statement shown includes, from top to bottom, a header row, a non-detail area, a detail area, and a non-detail area. The header row records the title, the detail area records various detailed data, and the non-detail area records relevant business data other than the detailed data.
[0042] In practical applications, the initial table can be divided into non-detail and detail areas based on whether a row includes a specified symbol. The specified symbol is flexibly set according to the actual application; it may exist in the first type of area but not in the second type of area containing detailed data. Specified symbols can be, for example, colons (:), underscores (_), separators (|), etc., but are not limited to these.
[0043] Typically, the cell merging patterns for non-detailed and detailed areas are not the same. Therefore, the cell merging patterns of adjacent rows can be used to divide the initial table into non-detailed and detailed areas. The cell merging pattern indicates the number of merged cells in a corresponding row, and which columns were merged to form the merged cells, etc. If different rows have the same cell merging pattern, it means that the number of merged cells in different rows is the same, and the merged cells are all formed by merging cells from the same column. If different rows have different cell merging patterns, it means that the number of merged cells in different rows is different and / or the merged cells are not formed by merging cells from the same column.
[0044] Based on the above, to improve the accuracy of identifying non-detailed and detailed areas in the initial table, one possible implementation for identifying non-detailed and detailed areas in the initial table is as follows: For the first valid area in the initial table (excluding invalid areas), traverse each row in the first valid area in ascending order of row number to check if it includes the specified symbol, until the starting row of the detailed area is determined from the first valid area; if the current row includes the specified symbol, then the current row is determined to belong to the non-detailed area; if the current row does not include the specified symbol, then if the cell merging pattern of the current row and the previous row is the same, then the current row is determined to belong to the non-detailed area; if the cell merging pattern of the current row and the previous row is different, then the current row is determined to be the starting row of the detailed area, and all rows in the first valid area starting from the starting row of the detailed area are determined to be detailed areas. The row number of the row above the current row is less than that of the current row. It is worth noting that if the current row is the first row and the first row does not include the specified symbol, then the first row can be assumed to belong to the detailed area.
[0045] Specifically, for the first valid region in the initial table excluding invalid regions, the non-detailed and detailed regions of the first valid region are identified starting from the header. If the first row of the first valid region contains a specified symbol, then the first row belongs to the non-detailed region, and the process continues to determine whether the second row contains the specified symbol. If the second row of the first valid region contains a specified symbol, then the second row belongs to the non-detailed region.
[0046] If the second row of the first valid area does not contain the specified symbol, then check if the cell merge patterns of the first and second rows are the same. If they are the same, it means that both the first and second rows belong to non-detailed areas. If they are different, it means that the first row belongs to a non-detailed area, the second row belongs to a detailed area, and the second row is the starting row of the detailed area. In this case, the first row is divided into a non-detailed area, and the second row and its subsequent rows are divided into detailed areas. This process is repeated, iterating through each row of the first valid area to check if it contains the specified symbol, until the starting row of the detailed area is determined from the first valid area. Continue with... Figure 3For example, first, iterate through the merged rows obtained by merging the first and second rows. Semantic analysis determines that the text content in the merged rows is a header row, i.e., an invalid row. Next, iterate through rows three through six. Since rows three through six contain colons (:), they are determined to be non-detailed areas. Then, iterate through row 7. Since row 7 does not contain colons (:) and its cell merging method differs from that of row 8, row 7 is determined to be the starting row of the detailed area, and row 7 and all subsequent rows are considered explicit areas.
[0047] In practical applications, there may or may not be a non-detailed area at the end of the initial table. For example... Figure 3 In this context, there are non-detailed areas following the detailed areas. Therefore, to further improve the accuracy of identifying both detailed and non-detailed areas, each row in the first valid area, starting from the beginning row of the detailed area, is defined as a detailed area. This includes: for the second valid area in the first valid area starting from the beginning row of the detailed area, traversing each row in the second valid area in descending order of row number to check if it contains a specified symbol, until the end row of the detailed area is determined from the second valid area; if the current row contains the specified symbol, it is determined to belong to a non-detailed area; if the current row does not contain the specified symbol, then if the cell merging pattern of the current row and the next row is the same, it is determined to belong to a non-detailed area; if the cell merging pattern of the current row and the next row is different, it is determined to belong to the end row of the detailed area. Thus, each row in the second valid area from the beginning row of the detailed area to the end row of the detailed area is defined as a detailed area. The row number of the row following the current row is greater than that of the current row. It is worth noting that if the current line is the last line and the last line does not contain the specified symbol, the last line can be assumed to belong to the details area.
[0048] Specifically, for the second valid region starting from the beginning row of the detailed region within the first valid region, the non-detailed and detailed regions within the second valid region are identified starting from the end. If the last row of the second valid region contains a specified symbol, then the last row belongs to the non-detailed region, and the process continues to check whether the second-to-last row contains the specified symbol. If the second-to-last row of the second valid region does not contain the specified symbol, the process checks whether the cell merging patterns of the last row and the second-to-last row are the same. If they are the same, then both the last row and the second-to-last row belong to the non-detailed region. If they are different, then the last row belongs to the non-detailed region, the second-to-last row belongs to the detailed region, and the second-to-last row is the end row of the detailed region. In this case, the last row is classified as a non-detailed region, and the second-to-last row and all rows preceding it are classified as detailed regions. This process continues, iterating through each row in the second valid region to check for the specified symbol until the end row of the detailed region is determined from the second valid region.
[0049] Continue with Figure 3 For example, first, iterate through the merged row obtained by merging rows 1 and 2. Semantic analysis determines that the text content in the merged row is a header row, i.e., an invalid row. Next, iterate through rows 3 to 6. Since rows 3 to 6 contain colons (:), they are determined to be non-detailed areas. Then, iterate through row 7. Since row 7 does not contain colons (:) and its cell merging method differs from that of row 7, it is determined to be the starting row of a detailed area. This completes the task of traversing from the beginning. Next, iterate from the end. Since rows 17 to 14 all contain colons (:), they are determined to be non-detailed areas. When traversing to row 13, since row 13 does not contain colons (:) and its cell merging method differs from that of row 14, it is determined to be the ending row of a detailed area. Therefore, rows 7 to 13 are determined to be detailed areas.
[0050] In this embodiment, after the target table is cropped from the spreadsheet, the header area of the target table can be identified using at least one of the following methods.
[0051] Method 1: Identify the header area of the target table by using merged cells as the identification target.
[0052] Specifically, it can be determined whether the first row of the target table contains merged cells; if the first row contains merged cells, then iterate through each row of the target table after the first row to see if it contains merged cells, until the first row that does not contain merged cells is encountered; then at least one consecutive row containing merged cells starting from the first row is determined as the header area of the target table.
[0053] Method 2: Identify the header area of the target table by using the serial number as the identification target.
[0054] Specifically, it can be determined whether the target table includes a serial number column, where the column data is serial numbers; if the target table includes a serial number column, then the row above the row with the smallest serial number is determined as the header area of the target table.
[0055] Method 3: Identify the header area of the target table by using the similarity between two adjacent rows as the identification target.
[0056] Specifically, it can iterate through adjacent rows in the target table to check for similarity until it first encounters adjacent rows that are not similar. The row with the smaller row number and at least one row before it in the first encountering adjacent rows that are not similar are identified as the header area.
[0057] Optionally, the similarity between adjacent rows in the target table can be determined by iterating through them sequentially. This includes: for each of the currently visited adjacent rows, determining the feature vector of each row based on the attribute information of at least one cell in each row, where the attribute information includes the data length or data type of the data in the cell; calculating the similarity between the adjacent rows based on their respective feature vectors; if the similarity is greater than or equal to a preset similarity threshold, then the adjacent rows are determined to be similar; if the similarity is less than the preset similarity threshold, then the adjacent rows are determined to be dissimilar. The preset similarity threshold can be flexibly set according to actual application requirements.
[0058] Specifically, when determining the feature vector of each row, a vector is determined for each cell based on the cell's attribute information, such as (0, 0, 1); the vectors of each cell are combined to obtain the feature vector of that row. When calculating the similarity between two adjacent rows, any one of the following distances can be calculated based on the feature vectors of the two adjacent rows: Euclidean distance, cosine distance, or Manhattan distance, and any one of these distances can be used as the similarity between the two adjacent rows.
[0059] Method 4: Use the default method to identify the header area of the target table.
[0060] For example, the first row is used as the header area of the target table by default.
[0061] It is worth noting that in practical applications, one or more of methods 1, 2, or 3 can be used to identify the header area. If the header area is not identified by methods 1, 2, or 3, method 4 can be used to identify the header area.
[0062] Alternatively, after identifying the header area of the target table, the header area can be validated, for example, by removing blank cells in the header area or removing duplicate rows in the header area.
[0063] In this embodiment, after identifying the header area of the target table, the field data of at least one header field associated with the header area is obtained from the text data in the spreadsheet. Specifically, the field name of the header field refers to the text content recorded in the cell of the header area, and the field value of the header field refers to the text content in each cell of the column containing the cell with the field name. Since the text data extracted from the spreadsheet includes at least one text content and the position information of the cell to which each text content belongs in the spreadsheet, for each cell in the header area, the text data of the spreadsheet can be queried based on the position information of that cell to obtain the text content in that cell, i.e., the field name in that cell. At the same time, based on the position information of other cells in the column containing that cell, the text data of the spreadsheet can be queried to obtain the text content of other cells, i.e., the field value of the header field corresponding to the field name. Thus, the field name and field value of at least one header field associated with the header area can be obtained from the text data of the spreadsheet. It also analyzes the data type of the field values for each header field, including but not limited to: long text, date, number, enumeration, address, and person name, etc.
[0064] In practical applications, corresponding page components can be called from the page component library based on the data of at least one header field, and an application can be generated based on at least one page component. For example, if the data type of the header field value is long text, a text input component can be called from the page component library; if the data type of the header field value is date, a date component can be called; if the data type of the header field value is numeric, such as ID card number, mobile phone number, landline number, etc., a text input component can be called. If the data type of the header field value is enumeration, a radio button component, checkbox component, or check mark component can be called from the page component library. If the data type of the header field value is address, a text input component can be called. If the data type of the header field value is person name, a radio button component, checkbox component, or check mark component can be called. The matching of which page component corresponds to which data type can be flexible.
[0065] It's worth noting that in practical applications, updating the page component library is supported. Users can develop new page components with specific functions as needed and add them to the page component library. Of course, they can also update the functions of existing page components in the page component library, and there are no restrictions on this.
[0066] Further optionally, to facilitate user data submission and data maintenance, the application is generated based on the field data of at least one header field as follows: From the page component library, at least one page component matching the data type of each of the at least one header field's field value is called, and the field name of each of the at least one header field is configured as the component name for the corresponding page component; a form submission page is generated based on the configured at least one page component; from the page component library, a list component is called, and the field data of the at least one header field is loaded into the list component to obtain a data management page; the application is generated based on at least the form submission page and the data management page.
[0067] Specifically, the form submission page is used by users to fill in and submit data. Users can interact with various page components on the form submission page to complete the corresponding data entry and trigger the submission of the entered data. The page names of each page component on the form submission page are the field names of the table header fields. Users can trigger page components to input the field values of the corresponding table header fields. The data input method of the page components is determined by the data type of the field values.
[0068] The data management page can load field data from various header fields for data aggregation, as well as field data from non-detail areas. It can also perform statistical analysis on the header field data and load the results; there are no restrictions on this. It's worth noting that when the data management page needs to load field data from non-detail areas, it can select a matching page component from the page component library based on the field values of those fields, load the selected page component into the data management page, and configure the page component according to the corresponding field data.
[0069] It is worth noting that when the data management page has a data aggregation function, data added by users through form submission can be aggregated on the data management page.
[0070] Alternatively, some operation controls can be set on the form submission page or data management page, such as add control, delete control, import control, export control, more controls, search control, filter control, sort control, etc., to improve the interactive friendliness of the application.
[0071] Alternatively, a homepage can be generated for the application, displaying links to the data management page and the form submission page to improve the application's interactivity.
[0072] For example, based on Figure 3 The application that generates the supplier statement shown includes Figure 4 The homepage shown is Figure 5 The "Supplier Reconciliation" page shown, and Figure 6 The image shows the "Supplier Invoice Data Management Page". After the user opens the application on their terminal device, the application's homepage is displayed on the device's screen, showing the data management page (i.e.,...). Figure 6 The entry link and form submission page (as shown) of the page shown Figure 5 The entry link to the data management page (shown on the screen) is displayed on the terminal device. When a user triggers the entry link to the data management page, the terminal device displays the data management page for the user to view and manage data. When a user triggers the entry link to the form submission page, the terminal device displays the form submission page for the user to fill in and submit data. It is worth noting that... Figure 6 The data management page shown is Figure 3 The field data shown is in the non-detail area. Of course, it can also be displayed... Figure 3 The field data in the details area shown.
[0073] The technical solution provided in this application sequentially performs text extraction, preprocessing, and header recognition on a spreadsheet to obtain field data for at least one header field. Application development is then based on this header field data. This provides a method for applying spreadsheet applications, effectively addressing the application of complex spreadsheets, significantly improving the development efficiency of spreadsheet applications, and enhancing the data security and maintainability of spreadsheets.
[0074] Figure 7 This is a schematic diagram of a spreadsheet-based application development device provided in an embodiment of this application. Figure 7 As shown, the device may include: an extraction module 71, a preprocessing module 72, an identification module 73, an acquisition module 74, and a generation module 75;
[0075] Among them, the extraction module 71 is used to extract text from the spreadsheet to obtain text data;
[0076] Preprocessing module 72 is used to preprocess the spreadsheet based on the text data to obtain the target spreadsheet;
[0077] The recognition module 73 is used to recognize the header area of the target table;
[0078] The acquisition module 74 is used to acquire field data of at least one header field associated with the header area from the text data;
[0079] Generation module 75 is used to generate an application based on field data of at least one header field.
[0080] Optionally, the text data includes the position information of the cell to which each text content belongs in the spreadsheet; correspondingly, when the preprocessing module 72 preprocesses the spreadsheet according to the text data to obtain the target table, it is specifically used to: determine multiple content blocks in the spreadsheet and the position information of each content block in the spreadsheet according to the position information of the cell to which each text content belongs, each content block consisting of at least one cell containing text content; determine the area of each content block according to the position information of each content block in the spreadsheet; cut out the content block with the largest area from the spreadsheet and use the content block with the largest area as the initial table; and crop the initial table to obtain the target table.
[0081] Optionally, when the preprocessing module 72 trims the initial table to obtain the target table, it is specifically used to: identify invalid areas, non-detailed areas, and detailed areas in the initial table; trim the invalid and non-detailed areas in the initial table, and use the untrimmed detailed areas as the target table.
[0082] Further optionally, when the preprocessing module 72 identifies invalid regions in the initial table, it specifically performs the following steps: sequentially identifies whether each row in the initial table is an invalid row in ascending order of row number and / or descending order of row number, until a valid row is identified for the first time; and determines the region consisting of at least one identified invalid row as an invalid region.
[0083] Further optionally, when the preprocessing module 72 sequentially identifies whether each row in the initial table is an invalid row, it is specifically used to: for the current row to be identified, determine whether the current row includes at least one of the following: remarks, title information, or merged cells; if the determination result is yes, then the current row is determined to be an invalid row; if the determination result is no, then the current row is determined to be a valid row.
[0084] Optionally, when the preprocessing module 72 identifies non-detailed areas and detailed areas in the initial table, it specifically performs the following: for the first valid area in the initial table excluding invalid areas, it sequentially traverses each row in the first valid area in ascending order of row number to check if it includes the specified symbol, until the starting row of the detailed area is determined from the first valid area; if the current row includes the specified symbol, it is determined that the current row belongs to the non-detailed area; if the current row does not include the specified symbol, it is determined that the current row belongs to the non-detailed area if the cell merging pattern of the current row is the same as that of the previous row; if the cell merging pattern of the current row is different from that of the previous row, it is determined that the current row belongs to the starting row of the detailed area, and all rows in the first valid area starting from the starting row of the detailed area are determined to be detailed areas.
[0085] Optionally, when the preprocessing module 72 determines each row in the first valid region starting from the starting row of the detailed region as a detailed region, it specifically performs the following steps: for the second valid region in the first valid region starting from the starting row of the detailed region, it sequentially traverses each row in the second valid region in descending order of row number to check if it includes the specified symbol, until the end row of the detailed region is determined from the second valid region; if the current traversed row includes the specified symbol, it is determined that the current row belongs to a non-detailed region; if the current traversed row does not include the specified symbol, it is determined that the current row belongs to a non-detailed region if the cell merging pattern of the current row and the next row are the same; if the cell merging pattern of the current row and the next row are different, it is determined that the current row belongs to the end row of the detailed region, and all rows in the second valid region from the starting row of the detailed region to the end row of the detailed region are determined as detailed regions.
[0086] Further optionally, when the recognition module 73 recognizes the header area of the target table, it is specifically used for:
[0087] The header area of the target table is identified by targeting merged cells; and / or,
[0088] The header area of the target table is identified by using serial numbers as the identification target; and / or,
[0089] The header area of the target table is identified by using the similarity between two adjacent rows as the identification target;
[0090] The default method is used to identify the header area of the target table.
[0091] Optionally, when the recognition module 73 identifies the header area of the target table using merged cells as the recognition target, it is specifically used to: determine whether the first row of the target table includes merged cells; if the first row includes merged cells, iterate through each row of the target table after the first row to see if it includes merged cells, until the first row without merged cells is encountered; determine at least one consecutive row containing merged cells from the first row as the header area of the target table; or,
[0092] When the recognition module 73 identifies the header area of the target table using the serial number as the recognition target, it is specifically used for:
[0093] Determine if the target table contains a serial number column, where the column data consists of serial numbers; if the target table contains a serial number column, then define the row above the row with the smallest serial number as the header area of the target table; or...
[0094] When the identification module 73 identifies the header area of the target table by using the similarity between two adjacent rows as the identification target, it is specifically used to: sequentially traverse whether there is similarity between two adjacent rows in the target table until the first traversal finds that there is no similarity between two adjacent rows; and determine the row with the smaller row number and at least one row before it in the first traversal of the two adjacent rows that are not similar as the header area.
[0095] Optionally, when the identification module 73 sequentially traverses the target table to determine whether there is similarity between adjacent rows, it specifically performs the following: for the currently traversed adjacent rows, based on the attribute information of at least one cell included in each of the adjacent rows, it determines the feature vector of each of the adjacent rows, where the attribute information includes the data length or data type of the data in the cell; based on the feature vectors of the adjacent rows, it calculates the similarity between the adjacent rows; if the similarity is greater than or equal to a preset similarity threshold, it determines that the adjacent rows are similar; if the similarity is less than the preset similarity threshold, it determines that the adjacent rows are not similar.
[0096] Further optionally, the field data includes: field name, field value, and data type of the field value. Accordingly, when the generation module 75 generates the application based on the field data of at least one header field, it is specifically used to: call at least one page component from the page component library that matches the data type of each of the at least one header field's field value, and configure the field name of each of the at least one header field as the component name for the corresponding page component; and generate a form submission page based on the configured at least one page component; call a list component from the page component library and load the field data of at least one header field into the list component to obtain a data management page; and generate the application based on at least the form submission page and the data management page.
[0097] Figure 7 The device shown can perform Figure 2 The implementation principle and technical effects of the method shown in the embodiments will not be elaborated further. Regarding the above embodiments... Figure 7 The specific ways in which each module and unit of the device performs operations have been described in detail in the embodiments of the method, and will not be elaborated here.
[0098] It should be noted that the execution subject of each step of the method provided in the above embodiments can be the same device, or the method can be executed by different devices. For example, the execution subject of steps 201 to 205 can be device A; or the execution subject of steps 201 and 203 can be device A, and the execution subject of steps 204 to 205 can be device B; and so on.
[0099] Furthermore, in some of the processes described in the above embodiments and accompanying drawings, multiple operations appear in a specific order. However, it should be clearly understood that these operations may not be executed in the order they appear herein, or they may be executed in parallel. The operation numbers, such as 201, 202, etc., are merely used to distinguish different operations and do not represent any execution order. Additionally, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the descriptions such as "first" and "second" in this document are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types.
[0100] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Figure 8 As shown, the electronic device includes: a memory 81 and a processor 82;
[0101] Memory 81 is used to store computer programs and can be configured to store various other data to support operation on the computing platform. Examples of this data include instructions for any application or method operating on the computing platform, contact data, phone book data, messages, pictures, videos, etc.
[0102] The memory 81 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0103] The processor 82, coupled to the memory 81, is used to execute a computer program in the memory 81 for: extracting text from a spreadsheet to obtain text data; preprocessing the spreadsheet based on the text data to obtain a target spreadsheet; identifying the header area of the target spreadsheet; obtaining field data of at least one header field associated with the header area from the text data; and generating an application program based on the field data of the at least one header field.
[0104] Furthermore, such as Figure 8 As shown, the electronic device also includes other components such as a communication component 83, a display 84, a power supply component 85, and an audio component 86. Figure 8 The diagram only shows some components and does not mean that the electronic device includes only these components. Figure 8 The components shown. Additionally... Figure 8 The components within the dashed box are optional, not mandatory, and their specific requirements depend on the product form of the electronic device. The electronic device in this embodiment can be a desktop computer, laptop computer, smartphone, or IoT (Internet of Things) device, or a server-side device such as a conventional server, cloud server, or server array. If the electronic device in this embodiment is a desktop computer, laptop computer, or smartphone, it may include... Figure 8 The components within the dashed box; if the electronic device in this embodiment is implemented as a conventional server, cloud server, or server array, etc., it may be omitted. Figure 8 The component within the dashed box.
[0105] For a detailed description of the implementation process of each action by the processor, please refer to the relevant descriptions in the foregoing method embodiments or device embodiments, which will not be repeated here.
[0106] Accordingly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed, can implement the steps that can be performed by an electronic device in the above method embodiments.
[0107] Accordingly, this application also provides a computer program product, including a computer program / instructions, which, when executed by a processor, enables the processor to perform the steps that can be executed by an electronic device in the above method embodiments.
[0108] The aforementioned communication components are configured to facilitate wired or wireless communication between the device containing the communication components and other devices. The device containing the communication components can access wireless networks based on communication standards, such as WiFi, 2G, 3G, 4G / LTE, 5G, or combinations thereof. In one exemplary embodiment, the communication components receive broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication components also include a Near Field Communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID), Infrared Data Association (IrDA), Ultra Wide Band (UWB), Bluetooth (BT), and other technologies.
[0109] The aforementioned display includes a screen, which may include a Liquid Crystal Display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen can be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors can sense not only the boundaries of touch or swipe actions but also the duration and pressure associated with the touch or swipe operation.
[0110] The aforementioned power supply components provide power to various components within the device in which they reside. These power supply components may include a power management system, one or more power sources, and other components associated with generating, managing, and distributing power to the device in which they reside.
[0111] The aforementioned audio component can be configured to output and / or input audio signals. For example, the audio component includes a microphone (MIC) configured to receive external audio signals when the device containing the audio component is in an operating mode, such as call mode, recording mode, or voice recognition mode. The received audio signals can be further stored in memory or transmitted via a communication component. In some embodiments, the audio component also includes a speaker for outputting audio signals.
[0112] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0113] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0114] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0115] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0116] In a typical configuration, a computing device includes one or more processors (central processing unit, CPU), input / output interfaces, network interfaces, and memory.
[0117] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0118] Computer-readable media, including both permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change RAM (PRAM), static random-access memory (SRAM), dynamic random-access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device. As defined in this article, computer-readable media do not include transient media, such as modulated data signals and carrier waves.
[0119] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0120] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A method for developing spreadsheet-based applications, characterized in that, include: Text is extracted from a spreadsheet to obtain text data; the text data includes the position information of the cell to which each text content belongs in the spreadsheet; Based on the position information corresponding to the cell to which each of the at least one text content belongs, determine multiple content blocks in the spreadsheet and the position information of each content block in the spreadsheet, each content block consisting of at least one cell containing text content; determine the area of each content block based on the position information of each content block in the spreadsheet; segment the content block with the largest area from the spreadsheet and use the content block with the largest area as the initial table; Identify invalid, non-detailed, and detailed regions in the initial table; crop the invalid and non-detailed regions in the initial table, and use the uncropped detailed regions as the target table; Identify the header area of the target table; Obtain field data of at least one header field associated with the header area from the text data; Generate an application based on field data from at least one header field; The process of identifying non-detailed and detailed regions in the initial table includes: for the first valid region in the initial table excluding the invalid region, sequentially traversing each row in the first valid region in ascending order of row number to check if it includes a specified symbol, until the starting row of the detailed region is determined from the first valid region; if the current row includes the specified symbol, then the current row is determined to belong to the non-detailed region; if the current row does not include the specified symbol, then if the cell merging pattern of the current row and the previous row are the same, then the current row is determined to belong to the non-detailed region; if the cell merging pattern of the current row and the previous row are different, then the current row is determined to belong to the starting row of the detailed region, and all rows in the first valid region starting from the starting row of the detailed region are determined to be the detailed region; Specifically, defining the detailed region as each row starting from the starting row of the detailed region within the first valid region includes: For the second valid region in the first valid region starting from the starting line of the detailed region, traverse each line in the second valid region in descending order of line number to check whether it includes the specified symbol, until the ending line of the detailed region is determined from the second valid region; If the current line being traversed includes the specified symbol, then the current line is determined to belong to a non-detailed region; If the current row being traversed does not contain the specified symbol, then if the cell merging pattern of the current row and the next row is the same, then the current row is determined to belong to a non-detail area. If the cell merging patterns of the current row and the next row are different, then the current row is determined to be the end row of the detail area, and all rows in the second valid area from the beginning row of the detail area to the end row of the detail area are determined as the detail area.
2. The method according to claim 1, characterized in that, Identifying invalid regions in the initial table includes: In ascending order of row number and / or descending order of row number, each row in the initial table is sequentially identified as invalid until a valid row is identified for the first time. The region consisting of at least one invalid row is defined as the invalid region.
3. The method according to claim 2, characterized in that, The process involves sequentially identifying whether each row in the initial table is invalid, including: For the current row to be identified, determine whether the current row contains at least one of the following: remarks, title, or merged cells. If the judgment result is yes, then the current row is determined to be invalid; if the judgment result is no, then the current row is determined to be valid.
4. The method according to claim 1, characterized in that, Identifying the header area of the target table includes: The header area of the target table is identified by targeting merged cells; and / or, The header area of the target table is identified using a serial number as the identification target; and / or, The header area of the target table is identified by using the similarity between two adjacent rows as the identification target; The header area of the target table is identified using the default method.
5. The method according to claim 4, characterized in that, The header area of the target table is identified by using merged cells as the identification target, including: Determine whether the first row of the target table contains merged cells; If the first row contains merged cells, then iterate through each row of the target table after the first row to see if it contains merged cells, until the first row that does not contain merged cells is encountered. The header area of the target table is defined as at least one consecutive row, including merged cells, starting from the first row; or, The header area of the target table is identified using a serial number-based identification method, including: Determine whether the target table includes a serial number column, wherein the column data of the serial number column is a serial number; If the target table includes the serial number column, then the row above the row with the smallest serial number is determined as the header area of the target table; or, The header area of the target table is identified by using the similarity between two adjacent rows as the identification target, including: Iterate through the target table to check if there is similarity between adjacent rows until the first iteration finds that there is no similarity between adjacent rows; The row with the smaller row number and at least one row preceding it in the first two adjacent rows that are not similar are identified as the header area.
6. The method according to claim 5, characterized in that, Iterate through the target table to determine if adjacent rows are similar, including: For the two adjacent rows currently being traversed, the feature vector of each row is determined based on the attribute information of at least one cell in each of the two adjacent rows. The attribute information includes the data length or data type of the data in the cell. Calculate the similarity between two adjacent rows based on their respective feature vectors; If the similarity is greater than or equal to a preset similarity threshold, then it is determined that two adjacent rows are similar. If the similarity is less than a preset similarity threshold, then it is determined that there is no similarity between two adjacent rows.
7. The method according to any one of claims 1 to 6, characterized in that, The field data includes: field name, field value, and data type of the field value. Accordingly, an application is generated based on the field data of at least one header field, including: From the page component library, call at least one page component whose data type matches the data type of the field value of at least one header field, configure the field name of each of the at least one header field as the component name of the corresponding page component, and generate a form submission page based on the configured at least one page component. From the page component library, a list component is called, and the field data of at least one header field is loaded into the list component to obtain the data management page; The application is generated based at least on the form submission page and the data management page.
8. A spreadsheet-based application development device, characterized in that, include: The extraction module is used to extract text from a spreadsheet to obtain text data; the text data includes the position information of the cell to which each text content belongs in the spreadsheet; The preprocessing module is used to determine multiple content blocks in the spreadsheet and the position information of each content block in the spreadsheet based on the position information of the cell to which each of the at least one text content belongs; each content block consists of at least one cell containing text content; determine the area of each content block based on the position information of each content block in the spreadsheet; segment the content block with the largest area from the spreadsheet and use the content block with the largest area as the initial table; Identify invalid, non-detailed, and detailed regions in the initial table; crop the invalid and non-detailed regions in the initial table, and use the uncropped detailed regions as the target table; The identification module is used to identify the header area of the target table; The acquisition module is used to acquire field data of at least one header field associated with the header area from the text data; The generation module is used to generate an application based on field data from at least one header field. The process of identifying non-detailed and detailed regions in the initial table includes: for the first valid region in the initial table excluding the invalid region, sequentially traversing each row in the first valid region in ascending order of row number to check if it includes a specified symbol, until the starting row of the detailed region is determined from the first valid region; if the current row includes the specified symbol, then the current row is determined to belong to the non-detailed region; if the current row does not include the specified symbol, then if the cell merging pattern of the current row and the previous row are the same, then the current row is determined to belong to the non-detailed region; if the cell merging pattern of the current row and the previous row are different, then the current row is determined to belong to the starting row of the detailed region, and all rows in the first valid region starting from the starting row of the detailed region are determined to be the detailed region; Specifically, defining the detailed region as each row starting from the starting row of the detailed region within the first valid region includes: For the second valid region in the first valid region starting from the starting line of the detailed region, traverse each line in the second valid region in descending order of line number to check whether it includes the specified symbol, until the ending line of the detailed region is determined from the second valid region; If the current line being traversed includes the specified symbol, then the current line is determined to belong to a non-detailed region; If the current row being traversed does not contain the specified symbol, then if the cell merging pattern of the current row and the next row is the same, then the current row is determined to belong to a non-detail area. If the cell merging patterns of the current row and the next row are different, then the current row is determined to be the end row of the detail area, and all rows in the second valid area from the beginning row of the detail area to the end row of the detail area are determined as the detail area.
9. An electronic device, characterized in that, include: Memory and processor; The memory is used to store computer programs; The processor is coupled to the memory for executing the computer program to perform the steps of the method according to any one of claims 1-6.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it causes the processor to perform the steps of the method according to any one of claims 1-6.
Citation Information
Patent Citations
Table extracting method and device
CN106156239A
Spreadsheet-based software application development
CN111819534A
Table picture structure analysis method, system and device and readable storage medium
CN112712014A
Method for identifying table in format document such as PDF
CN113343815A
Spreadsheet-based software application development
WO2019104447A1