The present disclosure relates generally to updating tabular data using externally acquired data.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Various types of applications, including spreadsheet applications, presentation applications, and word processing applications, may allow a user to generate and display data in the form of tables that consist of rows and columns of cells. For example, a user may generate a table using a spreadsheet application in order to track or analyze a set of quantitative or qualitative data.
In some circumstances, the source of the data may be external to the user. For example, the data to be shown in the table may be generated by a second party. In such circumstances, the user may desire to import the externally generated data to avoid having to manually re-enter each data point. In practice, however, importing a set of data may be confusing or cumbersome, involving obtaining the data in a suitable format, configuring the import processing properly, and subsequently reviewing the imported results to confirm that the import process was performed correctly.
The situation may be further complicated when the external data is updated or changed. In particular, an update or change in the external data source may lead to a need to update any table that is based on this external data in order to keep the external data and the table in synchrony. For example, in some circumstances, a set of external data may be updated on an occasional or periodic basis (e.g., daily, weekly, monthly, annually). In such circumstances, it may be desirable to update a locally maintained table that is based on this data. However, conventional importing processes may be cumbersome or error prone. For example, typical approaches may simply involve a user cutting the new data from the external source file and pasting the updated data over existing values. However, such an approach may be error prone and tedious. Further, any changes made by the user when setting up the existing table (e.g., may changing the layout, formatting style, and so forth) may have to be reapplied after pasting in the new data or may make it impractical to perform a single or simple paste operation.
A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below.
As described herein, the present approaches relate to the creation or updating of tabular data using data acquired from an external source, such as from an online or network accessible source. In certain implementations, the acquired data may include delimiting features to facilitate parsing of the data into discrete fields. In one embodiment, the data acquired from the external source (i.e., not user generated data) may be dragged-and-dropped onto a new or existing table to invoke execution of one or more data import or update routines. In the case of an update, a unique key within the existing table may correspond to a field within the acquired external data set, allowing record matching to be performed such that matched records may be updated and new records may be added to the table. In addition, identified fields in the acquired external data set may correspond to or be matched with columns of the table, allowing data values to be matched and updated regardless of differences in the layout of the table and the acquired external data set. In this manner, a table may be generated or updated in a simplified manner that is less prone to error.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
The disclosure is generally directed to approaches for updating tabular data using externally acquired data. In certain embodiment, a drag-and-drop implementation is provided whereby an acquired external data file may be dragged-and-dropped onto an existing table, with the data in the external file updating existing fields of the table or, when appropriate, causing new rows or fields to be added. In certain such embodiments, the column headers (or, where appropriate, row headers) may serve as keys to allow field matching between data fields within the table and within the external data. For example, one column header may be designated as containing a key field, allowing corresponding data values to be matched and updated. Where appropriate, the external data may have a format that can be parsed automatically, such as being comma or tab delimited or being in another parseable format, such as an XML or specialized binary format.
A variety of suitable electronic devices may employ the techniques described herein to provide automated or simplified updating of a table.
Turning first to
By way of example, the electronic device 10 may represent a block diagram of the handheld device depicted in
The processor(s) 18 and/or other data processing circuitry may execute instructions and/or operate on data stored in the memory 20 and/or nonvolatile storage 22. The memory 20 and the nonvolatile storage 22 may be any suitable articles of manufacture that include tangible, non-transitory computer-readable media to store the instructions or data, such as random-access memory, read-only memory, rewritable flash memory, hard drives, and optical discs. By way of example, a computer program product containing the instructions may include an operating system (e.g., OS X® or iOS by Apple Inc.) or an application program (e.g., Numbers®, Pages®, or Keynote® by Apple Inc.) or a suite of such application programs (e.g., iWork® by Apple Inc.).
The network interface 24 may include, for example, one or more interfaces for a personal area network (PAN), such as a Bluetooth network, for a local area network (LAN), such as an 802.11x Wi-Fi network, and/or for a wide area network (WAN), such as a 4G or LTE cellular network. The power source 26 of the electronic device 10 may be any suitable source of energy, such as a rechargeable lithium polymer (Li-poly) battery and/or an alternating current (AC) power converter.
As mentioned above, the electronic device 10 may take the form of a computer or other type of electronic device. Such computers may include computers that are generally portable (such as laptop, notebook, and tablet computers) as well as computers that are generally used in one place (such as conventional desktop computers, workstations and/or servers).
The handheld device 10A may include an enclosure 28 to protect interior components from physical damage and to shield them from electromagnetic interference. The enclosure 28 may surround the display 12, which may display a graphical user interface (GUI) 30 having an array of icons 32. By way of example, one of the icons 32 may launch a spreadsheet application program (e.g., Numbers® by Apple Inc.), a presentation application program (e.g., Keynote® by Apple Inc.), or a word processing application program (e.g., Pages® by Apple Inc.). User input structures 14, in combination with the display 12, may allow a user to control the handheld device 10A. For example, the input structures 14 may activate or deactivate the handheld device 10A, navigate a user interface to a home screen, navigate a user interface to a user-configurable application screen, activate a voice-recognition feature, provide volume control, and toggle between vibrate and ring modes. Touchscreen features of the display 12 of the handheld device 10A may provide a simplified approach to controlling spreadsheet, or other, application programs executing on the device. The handheld device 10A may include I/O ports 16 that open through the enclosure 28. These I/O ports 16 may include, for example, an audio jack and/or a Lightning® port from Apple Inc. to connect to external devices. The electronic device 10 may also be a tablet device 10B, as illustrated in
In certain embodiments, the electronic device 10 may take the form of a computer, such as a model of a MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® mini, or Mac Pro® available from Apple Inc. By way of example, the electronic device 10, taking the form of a notebook computer 10C, is illustrated in
With the preceding in mind, a variety of computer program products, such as applications or operating systems executing on an electronic device 10, may use or implement the techniques discussed below to enhance the user experience on the electronic device 10. Indeed, any suitable computer program product that provides for the generation and updating of a table of data may employ some or all of the techniques discussed below. While the following examples are provided in the context of a spreadsheet application, the present approaches are suitable for use in other applications (e.g., word processing applications, presentation applications, address book or contact list applications, media storing or playback applications, and so forth) where tables of data may be created, displayed, and updated.
For example, an electronic device 10 may store and run a spreadsheet application 34 (e.g., Numbers® from Apple Inc.) or other suitable application configured to implement the present table generation and updating approaches. The application may be stored as one or more executable routines (which may encode and implement the actions described below) in memory and/or storage (
Turning to
In addition, the interface screen 100 may include an interface bar 120 that includes buttons, menus, drop down boxes, and so forth that a user may interact with to invoke various functions within the spreadsheet application. By way of example, in the depicted screen 100, a magnification control 122, function entry button 124, table button 126, chart button 128, text box button 130, shape button 132, media button 134, and comment button 136 are provided. By interacting with these various controls, the user may insert a new table (such as via selection of the table button 126), select a function for use in a cell (such as via selection of the function button 124), insert a comment (such as via selection of the comment button 136), and so forth). In the depicted example, the uppermost row(s) (i.e., header rows 112) and leftmost column(s) (i.e., header columns 114) may be provided.
With this spreadsheet and table interface in mind,
In one embodiment, the header column 114 serves as a key column 210 in which the listed values within the key column 210 act as unique identifiers for the records stored in the table 200. By way of example, the key column 210 of table 200 of
For the purpose of the present discussion, the various columns 106 of the table 200 may be equated with different data fields, with the field descriptor or designator populating the respective header cells of header row 112. Conversely, the respective rows 104 of the table may be equated with separate and unique records (e.g., one for each “Team”) as denoted by the unique key in the key column 210. Thus, for each record (i.e., row), a set of data will populate the respective fields (i.e., columns) for that record such that each record has associated data that is defined for each respective field.
In one embodiment, the table 200 may be generated in a manner similar to the updating process described herein. For example, in one embodiment, a new or empty table may be opened by a user, such as that depicted in the example of
Thus, in this example, a representation of an external data file may be dragged-and-dropped onto a blank or new table, such as that shown in
Once generated and populated, the table 200 may be formatted by a user, assuming the initial layout or design of the table does not correspond to the layout desired by the user. As part of this formatting process, the user may designate the key column 210 that will contain a unique identifier that may be used in subsequent updating operations, as discussed herein. In one implementation, designating the key column 210 may include assigning or moving the field corresponding to the unique identifier to the leftmost column (i.e., the header column 114), such as depicted in
Turning to
Though a discrete data file is discussed herein by way of example, it should be appreciated that in other, more general contexts, the externally acquired or accessed data need not be in provided or acquired in an actual file format. For example, the external data may instead be accessed online (e.g., over the internet) without explicitly downloading or acquiring a discrete data file. Thus, references to and discussion of a data file herein should be understood to encompass not only discrete data files but also, more generally, externally available or acquired data that may be used in table generation or updating as discussed herein.
By way of example, taking
In the depicted example, the external file 250 of
In the depicted external file 250, the first record 252 within external file 250 is depicted as listing or identifying the corresponding data fields in the subsequent records. For example, for a given record, data preceding the first comma 256 corresponds to the “Division”, data between the first comma 256 and second comma 258 corresponds to the “Team”, data between the second comma 258 and third comma 260 corresponds to the current “Streak”, data between the third comma 260 and the fourth comma 262 corresponds to wins (“W”), data between the fourth comma 262 and the fifth comma 264 corresponds to losses (“L”), and data following the fifth comma 264 and preceding the end of record <EOR> corresponds to ties (“T”).
For the purpose of the present example, the external file 250 includes information for Teams not present in the table 200 of
In addition, the order of the fields and records between the external file 250 and the table 200 differs. In particular, the table 200 has a layout where the fields, (corresponding to columns of the table 200) are arranged such that the “Team” field is in the first column (i.e., header column 114) as opposed to being the second field, as it is in the external file 250. Such a layout may be desirable in the table 200 since the “Team” field is the only depicted field that contains unique values, and this is suitable to be a key column 210. In particular, in certain implementations it may be desirable for the key column 210 and header column 114 to be the same so that the key field is displayed as the first or leftmost column. In addition to this difference, the ordering of the “Streak”, “W”, and “L” fields also differs between the table 200 and the external file 250.
As a consequence of these differences, updating the table 200 based on the external file 250 cannot be accomplished by simply reading out and applying the data contained in the external file 250 in a linear manner. Instead, in certain implementations, the corresponding fields of the external data file 250 may be mapped to the corresponding fields (displayed in the columns 106) of the table 200 to be updated.
For example, upon parsing the external data file 250, the initial record 252 may include field headings or descriptors that correspond to the headings within the header row 112, which may have been reordered by the user, as in this example. Due to the correspondence between the field descriptors in the initial record 252 of the external field 250 and the headers or descriptors populating the header row 112 of table 200, the update process may be mapped so that data corresponding to a particular field in the external data file 250 is applied to the corresponding column within the table 200. For example, though the “Division” field in the external data file 250 is the first field in each record (i.e., precedes the first comma 256) but is the second column 102 in the table 200, the correspondence between the header information in both the table 200 and external file 250 allows the “Division” field to be mapped so that the “Division” data point for a given record is applied to the proper column (e.g., the second column) in the table 200. Likewise, in the depicted example, the “Streak” field precedes the “W” and “L” fields in the external file 250, but follows these fields in the table 200. As with the “Division” field example, the correspondence between the field headers in the external file 250 and table 200 is leveraged to apply the data from a given field in the external data 250 to the corresponding column 106 of the table 200.
In addition, as previously noted, the external data file 250 may include fields that are not present in the table 200, such as due to the user choosing to exclude or remove the fields in question. For example, the external file 250 includes a field for ties (“T”) that is absent from the table 200. As a result, the absence of this field in the table 200 may result in the “T” field not being imported or not being applied as there is no column 106 of the table mapped to this field.
Conversely, in formatting the table 200, the user may introduce columns that have no corresponding field in the external file 250 (such as a Win Percentage column in the context of the present example) or may intentionally or inadvertently duplicate a column (such as having two columns with the header Streak in the context of the present example). In the instance where a new column has been added for which there is no corresponding field in the external file 250, that cell would be left unfilled by the update process. As will be appreciated, however, a formula present in or applied to the cell may automatically populate the field after application of the update. With respect to the instance of a duplicated column, in such a circumstance the mapping from the external file 250 to the corresponding columns of the table 200 may result in both columns labeled by the duplicate header being updated or populated using the corresponding data from the external file 250.
While the preceding relates the manner in which respective data fields may be mapped to the appropriate columns 106, an additional consideration is matching records between the existing table 200 and the external data file 250. As noted above, in the example of
Turning to
In the depicted example, a displayed file name of the representation (i.e., “Week12.csv”) includes a displayed extension (i.e., “.csv”) indicating that the file is in a comma-separated or comma-delimited format. As noted herein, in certain implementations, the external file 250 may be in such a delimited format (e.g., comma or tab delimited or a parseable XML or specialized binary format), allowing the external file 250 to be easily parsed into corresponding fields of values by an update process.
In the depicted example, a cursor 274 is also shown to signify that the representation 270 has been selected and is being “dragged” by the user from one location to another in the displayed interface. Turning to
This can be seen in
As previously noted, part of such an update process may include mapping data values from a given field location in the external file 250 to a corresponding location in the table 200 (and 280). For example, looking at row 3 of table 280, the data record corresponding to the “Bobcats” team is depicted. In this example, the team name (“Bobcats”) populates Column A, though in the external file the team name is actually stored in the second field for that record. Embodiments of the present update process, however, map data values between the external file 250 and the table 200 (and updated table 280) so that the correct data values are used to populate the corresponding table columns 106. Similarly, in this example, the first field in the external file 250 corresponds to Division (“North”) which is mapped to Column B in the updated table 280, the third field in the external file 250 corresponds to Streak (“2W”) which is mapped to the Column E, and so forth.
With the preceding examples and discussion in mind,
Turning to
In the depicted implementation, the initial external data set 302 is imported (block 304), such as by invoking suitable data importation routines of a spreadsheet application or other suitable application. To the extent that the initial external data set may be ordered, both in terms of records or fields, the initial table 306 may be constructed or populated to reflect the ordering of records and fields within the initial external data set 302. In the depicted example, the user may format (block 310) the initial table 306 by providing one or more user inputs 312. Examples of such user inputs 312 may include, but are not limited to, deleting a column 106 (i.e., data field) from or adding a column 106 to the initial table 306, reordering the columns 106 of the initial table 306, deleting a row 104 (i.e., data record) from the initial table 306, reordering the rows 104 of the initial table 306, or assigning a column 106 to be a key column 210 of the table 306. Assigning a column 106 to the be the key column 210 may, in some embodiments, involve moving a column 106 of the table 306 that has unique identifiers or values to be a header column 114 of the table 306. Upon application of the user inputs 312, the resulting formatted table 200 is generated and may be used, reviewed, or further formatted by the user. As will be appreciated, the steps involved with formatting the initial table 306 may be omitted if the initial table 306 is in a suitable format when generated. That is, if the initial table is suitably formatted when generated, the initial table 306 may serve as the formatted table 200.
In the depicted implementation, the formatted table 200 is subsequently updated based on one or more sets of externally generated data (i.e., an external data update 250), such as in the form of a periodic data update. In certain implementations, the external data update is delimited (e.g., comma or text delimited) and may have a layout or data configuration similar or identical to that of the initial external data set 302. In the implementation of
Turning to
Upon execution of the update routines a matching step 322 may be invoked to match records in the external data file 250 and the formatted table 200 based on a unique key. As depicted in
While the update process may be accomplished using a drag-and-drop operation, in other embodiments, such as in the generalized scenario outlined in
As discussed herein, the present approach allows a user to easily generate or update a table containing data records using data generated or updated external to the user or system creating or maintaining the table. For example, the source of the data may be an online or network accessible location which occasionally or periodically makes data available in a manner than can be downloaded or acquired as a data file, such as a delimited data file. A user may acquire such a data file from the external source and import the data to create a new table or update an existing table, such as by using a drag-and-drop technique to invoke routines for creating or updating the table. When employed, such drag-and-drop techniques may allow a user to drag-and-drop a representation of the externally acquired data file, such as an icon, onto a new or existing table to invoke the respective routines.
The specific embodiments described above have been shown by way of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure.