PearTable converts simple tabular data.
For plain-text tables, flat object arrays, and key value pairs.

By and Copyright © 2020-2024 Greg Abbott.
All rights reserved.

NO WARRANTY
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Input

Output

LOG
2025_0222
- Adds align HTML table (presents as grid).
- Adds align JS array of objects as table.
- Adds checkbox 'Align (if possible)' to slim output kind list.
- Moves processing options to right side.
- Checks if SSV input is aligned or not and parses accordingly.

2025_0221
- Handles space separated data without aligned columns.
  - See option "Space table (unaligned)".
- Adds minimum gap option to "space table (aligned)" logic.
- Refactors to convert all input to array of arrays first.
  - Previously array of objects first.
- Replaces library (from JAO to X) with new (from JAA to X)
  - JAO: JS array of objects | JAA : JS array of arrays
- Numbers duplicate headers / column names found in input data.
- Suffixes number only column headers, to keep their sort order.
- Handles input where records have or lack different fields.
- Adds "Reverse Headers" to reverse column/keys (A B C > C B A).
- Adds "Reverse Records" (i.e. non-header rows): 1 2 3 -> 3 2 1.
- Removes previous code.

2024_1124
- Refactors 'output to table' functions to share logic.
- Adds 'Rights' popover.

2024_1121
- Escapes tabs and newlines in values for some outputs.
- Refactors various converters.
- Adds button to push output to input.
- Rewrites space separated table parser (handles blank cells).
- Improves text cleaner (removes invisibles).

2024_1118
- Adds JSON table: written to present CSV like data.

2024_1114
- Refactors converter functions into a JS library.

2024_1029
- Guesses aligned Markdown tables.

2024_1022
- Converts JSON array lists [["k1","k2"],["v1","v2"]].

2024_1018
- Adds more markdown list converters.
- Adds gap separated records converter.
- Restyles front end.
- Converts when user changes input or output type.
- Handles CSV with commas and quotes in values.
- Moves page information into popovers.
- Adds copy and save buttons for input and output.
- Adds function to guess type of input.
- Triggers guess input on paste.
- Selects input type on guess.

2024_0910
- Converts space separated values tables.

2024_0605
- Adds transpose feature to swap X and Y data.

2020_0721
- Merges converters to one page.