Modern CSV https://www.moderncsv.com/ CSV File Editor Application for Windows, Mac, and Linux Thu, 22 Aug 2024 23:07:42 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://www.moderncsv.com/wp-content/uploads/2022/12/cropped-icon-v2-full-512x512-1-32x32.png Modern CSV https://www.moderncsv.com/ 32 32 Modern CSV 2.1 is now available. https://www.moderncsv.com/modern-csv-2-1-is-now-available/ https://www.moderncsv.com/modern-csv-2-1-is-now-available/#respond Wed, 07 Aug 2024 03:51:41 +0000 https://www.moderncsv.com/?p=3190 Modern CSV is a CSV file editor and viewer with analysis capabilities. I’ve worked hard to incorporate new features and cosmetic enhancements to improve your experience even further. I am now thrilled to present version 2.1. You can download it here: Windows Installer (EXE) Windows Portable (Zip) macOS (DMG) Linux (Tarball)   Changes Major Features Import JSON and XML files. Export to JSON and XML. Pivot Table (Premium Business) Minor Features Select Entire Row(s)/Column(s) (Header Excluded) commands. Increment/Decrement numerical values via mouse drag. Use the middle mouse button to click on a cell with a number. Drag it and hit […]

The post Modern CSV 2.1 is now available. appeared first on Modern CSV.

]]>
Modern CSV is a CSV file editor and viewer with analysis capabilities. I’ve worked hard to incorporate new features and cosmetic enhancements to improve your experience even further. I am now thrilled to present version 2.1. You can download it here:

Windows Installer (EXE)
Windows Portable (Zip)
macOS (DMG)
Linux (Tarball)

 

Modern CSV v2.1

The new and improved Modern CSV v2.1, now with less Windows chrome.

Changes

Major Features

  • Import JSON and XML files.
  • Export to JSON and XML.
  • Pivot Table (Premium Business)

Minor Features

  • Select Entire Row(s)/Column(s) (Header Excluded) commands.
  • Increment/Decrement numerical values via mouse drag. Use the middle mouse button to click on a cell with a number. Drag it and hit a number and/or the ‘-‘, ‘+’, or ‘=’ (for ‘+’) buttons.
  • Snap to Column/Row After Scrolling settings.
  • Preference window: Added a search field to “Settings” and “Keyboard Shortcuts”.
  • ASCII Separated Values parsing standard. Uses ASCII Unit Separator and Record Separator.
  • Add or Update ID Column command. (Premium)
  • Added Statistics – Selected Cells and Statistics – Selected Cells by Columns commands. (Premium Business)
  • All File Analysis tabs (Statistics, Column Analysis, Unique Values, Pivot Table): Added a “Use Thousands Separators” option. (Premium Business)
  • Statistics: option to exclude columns without numerical data. (Premium Business)
  • Sum and Mean of selected cells in the status bar. (Premium Business)

Bug Fixes

  • When the read-only setting is enabled, new files created by the user are editable.
  • Improved representation of values in the File Analysis tabs so it wouldn’t show scientific notation until the number is exceptionally large (i.e. 10^15 or higher).

Aesthetics

  • Windows: Removed native Windows chrome and integrated the title bar into the theme.
  • Mac: Blended the title bar color with the theme.
  • General aesthetic improvements.

Details

Import JSON and XML Files

When you call the Import from JSON or XML command, this window will pop up:

Import Window

You can import files, clipboard contents, or contents from a web URL. It comes with a Preserve Original File Structure option. That option allows you to import a file, make edits, and then export it all while maintaining its structure. This makes it possible for you to edit your JSON and XML files in a more compact table structure.

You can import multiple files at once. Either open them with the Local Files button or drag and drop them into the window. It will attempt to detect file types based on their extensions (i.e. “.json” or “.xml”) or their contents. If it determines a file is not JSON or XML, it will tell you so when you try to import.

Export to JSON and XML

You can export any table file to JSON or XML format. For most files, it will make an entry for each row of the table. In JSON, it will be an array of objects with each object representing a single row. The name for each name-value pair will be the column name (last of the header rows). In XML, there will be a “root” element and each row will be represented by a “record” element. Each column will have an element inside the record with the cell value in the element contents.

Pivot Table

Pivot Table

The Pivot Table feature can be used to aggregate numerical data. For instance, if you have a table of sales data and want to know the sum of each salesperson’s sales, the Pivot Table will show you. Select the columns you want involved and call the Pivot Table – Selected Columns command. It will guess which columns belong where and you’re free to move them around as you wish. Table columns can be represented on the left side of the pivot tables or on the top. There’s no limit to how many table columns can be represented on the left or the top. You can also have as many data columns as you wish. The data it displays can be sum, mean, median, std dev, variance, and count (number of data points).

Add or Update ID Column

ID columns are common in CSV files. This command will manage them for you. If you don’t have one already, it will create one and provide every row of your file with an ID. It will ask you which number to start with, so you can start them at 1, 0, 1000000, or whatever you want.

If there already is an ID column, it will find the highest numerical value and start populating the empty cells at one above the highest value.

Increment/Decrement numerical values via mouse drag

One of my favorite features in Modern CSV is the ability to duplicate cells by holding down the middle mouse button and dragging it. Now, if your cell contains a numerical value, you can increment or decrement the value as you click-drag it. To increment, start click-dragging and hit the + key or the = key (which is really the + key when shifted). To decrement, hit one of the minus keys instead.

Furthermore, you can increment or decrement by some number other than 1. To increment by, say 5, press the 5 key. To decrement by 5, press the – key and 5 keys at the same time. The 0 key will increment or decrement by 10. That’s the most you can do with this feature. For a greater interval, you can use the Fill Selected Cells with Series command.

ASCII Separated Values (ASV) parsing standard

The ASCII standard contains two useful characters for making delimited files – the ASCII Unit Separator (0x1F) and Record Separator (0x1E). For reasons that only computer historians are privy to, these characters went mostly unused and we went with commas, semicolons, vertical bars, etc. for unit separators and newlines (0x0A or 0x0D0A) for record separators. That means we have to do unseemly things to work with cells that may contain such characters. Still, some systems are smart and do use these ASCII characters. This version of Modern CSV will correctly parse and save such files. This is a subset of the Unicode Separated Values (USV)™ standard (https://github.com/SixArm/usv). Modern CSV does not support full USV yet, but it may in the future. Let me know if you’d like to see it.

Statistics improvements

Version 2.0 with a Premium Business license introduced statistics functions, but they only worked on entire columns. Granted, you could filter columns or hide certain rows and it would operate on only the visible rows, but there was still a lot of demand to operate on selected cells only. Version 2.1 introduces that capability. You can do stats on all selected cells combined together regardless of which column they’re in with the Statistics – Selected Cells command.

Statistics of Selected Cells

Alternatively, you can selected data across multiple columns and have it compute the stats by column with the Statistics – Selected Cells by Column command.

Statistics of Selected Cells by Column

It also shows the sum and the mean of the selected cells with numerical values in the status bar.

Status Bar Statistics

Lastly, the representation of numbers has been improved. In 2.0, if you had a sum in the millions, it would be represented in scientific notation (e.g. 7.01199e+06). Now, it’ll display it as 7,011,990. Additionally, if your locale uses dots for thousands separators, it’ll be displayed as 7.011.990. Comma decimals will also be respected.

Snap to Row/Column After Scrolling

By default, Modern CSV will snap to the nearest row or column when you’re scrolling. Many have asked to make that behavior optional, in particular for columns. If you have large columns, you don’t always want it to automatically snap, so the Snap To Row/Column After Scrolling settings give you the option of disabling that behavior.

I hope you enjoy this latest release. As always, I’m looking for ways to improve it, so if you think of something, feel free to let me know here. Once again, here are the download links:

Windows Installer (EXE)
Windows Portable (Zip)
macOS (DMG)
Linux (Tarball)

The post Modern CSV 2.1 is now available. appeared first on Modern CSV.

]]>
https://www.moderncsv.com/modern-csv-2-1-is-now-available/feed/ 0
Modern CSV 2 is now available. https://www.moderncsv.com/modern-csv-2-is-now-available/ Thu, 27 Apr 2023 00:17:20 +0000 https://dev.moderncsv.com/?p=1722 And I think you’ll love it. I focused on several areas: Improved UI and user experience Faster performance Useful features Updated documentation For Mac users, Native Apple Silicon (ARM – M1, M2) compatibility If that’s all you need to know, you can buy a license here. Or if you already have a version 1 license, you can upgrade here. For those that need more details, here you go. Improved UI and User Experience There are two areas of the user interface that I aimed to improve for usability: Preferences and File Metadata. I also added several new themes and a […]

The post Modern CSV 2 is now available. appeared first on Modern CSV.

]]>
And I think you’ll love it. I focused on several areas:

  1. Improved UI and user experience
  2. Faster performance
  3. Useful features
  4. Updated documentation
  5. For Mac users, Native Apple Silicon (ARM – M1, M2) compatibility
Download Modern CSV 2

If that’s all you need to know, you can buy a license here.
Or if you already have a version 1 license, you can upgrade here.
For those that need more details, here you go.

Improved UI and User Experience

There are two areas of the user interface that I aimed to improve for usability: Preferences and File Metadata. I also added several new themes and a bunch of subtle improvements to make it look and feel better.

Modern CSV v2

Preferences

In version 1, preferences (i.e. program settings, keyboard shortcuts, and file extension options) could only be set by editing and saving a file. Some users really liked this and others preferred a UI. I decided to give everyone what they want. For those who like it, you can still edit the preference files just like in version 1. For everyone else, there is a Preferences window that is more intuitive and less prone to mistakes.

Settings Window

Settings Window

 

Keyboard Shortcuts Window

Keyboard Shortcuts Window

 

File Extension Options

File Extension Options

File Metadata

In version 1, changing the file’s parameters (e.g. delimiter, character encoding, etc.) or header row/column settings was all done via command. In version 2, you can still do it via command, but there’s now a File Metadata pane to make it easier.

File Metadata Pane

File Metadata Pane

Themes

Version 1 had two themes – Light and Dark. Version 2 has five – Light, Dark, Dracula, Solarized Light, and Solarized Dark.

Dracula Theme

Dracula Theme

 

Solarized Light Theme

Solarized Light Theme

 

Solarized Dark Theme

Solarized Dark Theme

Faster Performance

The first thing you’ll notice is that it loads faster than version 1. The load time has been cut nearly in half.
For loading large files in read-only mode, load time has been reduced by nearly 20%
Lastly, the performance for loading files with many columns has been reduced by over 90%. That’s a full order of magnitude.

Useful Features

I make sure that any feature I add is going to be useful to a broad swatch of Modern CSV users. Most of them have been requested by users. The rest are features I find useful, and since I use my own product, I count as a user. Here are some of the most important new features:

* Select all results of a Find operation.
* Open a new instance.
* Deduplicate rows based on just a few columns (instead of only removing rows that are the same on every column). [Premium]
* Reshape (change dimensions) of a range of cells. [Premium]
* Statistics and Column Analysis. [Premium Business]
* Column Lookup. [Premium Business]

For a more comprehensive list, see the Download page.

Updated Documentation

The old documentation was single page and was starting to get pretty large. The new documentation has multiple pages with excellent navigation and search functionality. It’s more comprehensive but still concise. I endeavor to use graphics instead of words when possible.

Native Apple Silicon (ARM – M1, M2) Compatibility

Rosetta is no longer needed to run Modern CSV on Apple Silicon machines.

Conclusion

A lot of work went into making Modern CSV 2.0. I hope you find it makes editing and viewing CSV files even easier. Please feel free to try it out and let me know what you think.

Download Modern CSV 2

If you’re ready to buy a license, you can do so here here.

If you already have a version 1 license, you can upgrade here.

The post Modern CSV 2 is now available. appeared first on Modern CSV.

]]>
How to Create CSV Files (WooCommerce CSV Import Example) https://www.moderncsv.com/how-to-create-csv-files-woocommerce-import-csv-example/ Thu, 22 Jul 2021 03:43:57 +0000 https://www.moderncsv.com/?p=1589 This article answers the question that man has wrestled with since the days when fire was considered cutting edge tech- how to create CSV files to handle all the data. One way is to open a plain text editor and start typing. Another way is to use a CSV editor like Modern CSV. Finally, you can export a CSV file. By way of example, I’ll use WooCommerce, a popular e-commerce platform for WordPress. I’ll cover how to export a CSV from WooCommerce, build a product list in Modern CSV, and import the modified CSV back into WooCommerce. What is a […]

The post How to Create CSV Files (WooCommerce CSV Import Example) appeared first on Modern CSV.

]]>
This article answers the question that man has wrestled with since the days when fire was considered cutting edge tech- how to create CSV files to handle all the data. One way is to open a plain text editor and start typing. Another way is to use a CSV editor like Modern CSV. Finally, you can export a CSV file. By way of example, I’ll use WooCommerce, a popular e-commerce platform for WordPress. I’ll cover how to export a CSV from WooCommerce, build a product list in Modern CSV, and import the modified CSV back into WooCommerce.

What is a CSV File?

A CSV (comma separated value) file is a plain text file representing a table of information. Commas typically separate the columns and newline characters (e.g. the Enter key) separate the rows.

If a cell has commas or newlines, surround the cell with double quote characters. If it has double quote characters, type them in twice and also surround the cell with double quotes.

Typically, the first row is a header row labeling the columns. The rows that follow are records.

CSV files sometimes use tabs, pipes (|), or semicolons to separate the columns. They may be called TSVs, PSVs, or DSVs respectively.

How to Manually Create CSV Files

Suppose you want to make a CSV file of actors you’ve seen in movies and TV recently for some reason. If you made it in a text editor, it might look like this:

How to Create a CSV File in Notepad.

That’s not especially convenient. The columns don’t align, you can’t sort by birthdate or filter to only see women or people born in a certain country. If you want to insert a column or move columns around, you’re in for a lot of manual labor. Additionally, you have to surround the birthplace entries with double quotes. If you mess it up, your file will be misaligned. Plus, it just looks awkward.

If you’d rather not deal with that, try Modern CSV instead. Here’s what the same file looks like:

How to Create a CSV File in Modern CSV

Now, you can use a ton of great features that operate on both rows and columns.

Let’s use a more realistic example of how you might use a CSV editor in real life.

Export a CSV from WooCommerce and Import the CSV Back

WooCommerce is an e-commerce tool that makes it easy to export product data and import it back in CSV format.

Suppose you’re setting up an e-commerce store to sell your custom-made art products. You have a million products that will take a thousand years to type manually in your browser. Here’s a much easier approach:

  1. Manually enter a single product in WooCommerce.
  2. Export it to CSV.
  3. Enter the rest of the products with Modern CSV.
  4. Import it back to WooCommerce.

1. Manually enter a single product in WooCommerce.

Enter all the product descriptions, variations (like color), SEO data, images, etc. for just one product. This will serve as the template for the rest:

Enter a single product's information in WooCommerce's interface to create a template for the rest.

2. Export it to CSV.

In the WordPress sidebar, go to Products.

Click Products in WordPress's sidebar.

Hit the Export button.

Hit the Export Button.

Check the “Export custom meta?” option and hit the Generate CSV button. Then, download the file.

Export a CSV file from WooCommerce

You have just created a simple CSV file that already has the header information need to add the rest of your products.

3. Enter the rest of the products with Modern CSV.

Open the file with Modern CSV.

The product list in Modern CSV. You can now add the rest of the products to import back into WooCommerce.

It may be awkward scrolling horizontally to see all the fields. If you wish, you can transpose it using the Transpose Table command (ctrl+alt+t for Windows and Linux, cmd+alt+t for Mac). More about transposing here.

Transpose the product list for easier viewing if you wish.

Or you can leave it as it was.

Perhaps you have a bunch of similar products that only differ on the specifics. You can duplicate the first product’s row several times with the Duplicate Rows command (ctrl+alt+r for Windows and Linux, cmd+alt+r for Mac).

Duplicate the first product and then edit the rest.

You can create new IDs in the ID column with the Fill Selected Cells with Series command (ctrl+alt+n for Windows and Linux, cmd+alt+n for Mac).

Edit the ID column with the Fill Selected Cells With Series command.

You can then select row 2 and call the Replace command (ctrl+h in Windows and Linux, cmd+alt+f in Mac). Then, you can replace the product name using the Match Only in Selected Cells option. This option will automatically be selected when multiple cells are selected.

Replace all instances of a product name in a single row.

For editing the description, you’ll probably want to use newline characters and such. With the editor pane, you can do that. It’ll be like typing in a plain text editor. You can enable it with the Toggle Show Editor Pane command (crtl+k,ctrl+e for Windows and Linux, cmd+shift+e for Mac).

Use the editor pane to more easily edit the Description field.

You can escape out of it with the esc key or navigate out with alt+i (up), alt+l (right), alt+j (left), or alt+k (down).

4. Import it back to WooCommerce.

Once you add all your products to the CSV and edit them, you can save import them back to WooCommerce. In WordPress, go back to the Product screen and click the Import button.

Click the import button.

On the next screen, point it to the file and hit Continue.

Import the CSV back into WooCommerce.

When the process is done, you might have some errors. Fortunately, the error log is actually helpful. In this case, I left the SKUs the same for each of the products.

There may be import errors. Check the error log.

Back in Modern CSV, I update the SKUs…

Update the SKU fields.

and try again. This time, it worked and I can see all my products:

Now, all your products are in the list.

Conclusion

This is one example of how you can create CSV files with Modern CSV using WooCommerce’s CSV export and CSV import features. You can perform similar actions with all sorts of e-commerce platforms and databases. Instead of slogging through tedious user interfaces, you can use Modern CSV to quickly edit your data.

The post How to Create CSV Files (WooCommerce CSV Import Example) appeared first on Modern CSV.

]]>
Modern CSV’s Sort Algorithm https://www.moderncsv.com/sort-csv/ Sat, 05 Jun 2021 14:24:59 +0000 https://www.moderncsv.com/?p=1533 To sort a series of strings, you need a way to compare two strings to determine which is “less” and which is “more”. The lesser one comes before the greater one (or in an descending sort, after). Modern CSV uses a combination of numerical and lexicographical sort. Here is a super professional looking flow chart to show how it works: Lexicographical Sort Lexicographical sort is ill-suited for sorting numbers. If you have a series of numbers, say 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, and you apply a lexicographical sort, it’ll come up 1, 10, […]

The post Modern CSV’s Sort Algorithm appeared first on Modern CSV.

]]>
To sort a series of strings, you need a way to compare two strings to determine which is “less” and which is “more”. The lesser one comes before the greater one (or in an descending sort, after). Modern CSV uses a combination of numerical and lexicographical sort. Here is a super professional looking flow chart to show how it works:

Are both strings numbers? 
    |           \
    No          Yes
    |             \
    |              ˅
    |         Numerical Sort
    |
    ˅
Do both strings contain identical non-numeric characters interspersed by (perhaps different) numbers?
    |           \
    No          Yes
    |             \
    |              ˅
    |         Compare only the number parts. (See explanation below)
    |
    ˅
Straight lexicographical sort

Lexicographical Sort

Lexicographical sort is ill-suited for sorting numbers. If you have a series of numbers, say 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, and you apply a lexicographical sort, it’ll come up 1, 10, 11, 12, 2, 3, 5, 6, 7, 8, 9. That’s dumb. It’s better applied to words.

Lexicographical comparison looks at the first character of the two strings. If one character is less, the whole string is less and it’s done. If they’re the same, it moves on to the second character. It repeats until it finds differing characters or one string ends. If one string is shorter but they’re otherwise identical, the shorter string is less.

This is why in the example above, 10 comes before 2. It start with the first characters, 1 and 2, and since 1 is less than 2, 10 comes first. It’s better to compare these strings numerically.

Compare only the number parts

Suppose you have a list of IP addresses to sort. It has to compare these two:

  • 64.18.2.0
  • 64.18.10.0

These strings won’t convert to numbers, but we obviously want 64.18.2.0 to come first. A lexicographical comparison won’t do that. The program sees both of these strings as number-dot-number-dot-number-dot-number. Since the non-number parts are identical, it compares the number parts numerically starting with the first. Once it gets to comparing 2 and 10, the one with 2 comes first.

This also works nicely on things like street addresses (423 Sesame St. vs. 1234 Sesame St.) and heights in the American system (5’3″ vs. 5’10”).

Case Sensitive Sorting

Starting in version 2, there is now a Case Sensitive Sorting setting that is enabled by default. Supposed you start with the following strings:

  • mick
  • Mick
  • keith
  • Keith
  • ronnie
  • Ronnie
  • charlie
  • Charlie

With the Case Sensitive Sorting setting enabled, it will be sorted in ascending order as:

  • Charlie
  • Keith
  • Mick
  • Ronnie
  • charlie
  • keith
  • mick
  • ronnie

WIth it disabled, it will be:

  • Charlie
  • charlie
  • Keith
  • keith
  • Mick
  • mick
  • Ronnie
  • ronnie

The post Modern CSV’s Sort Algorithm appeared first on Modern CSV.

]]>
License Issues https://www.moderncsv.com/license-issues/ Thu, 27 May 2021 21:23:30 +0000 https://www.moderncsv.com/?p=1494 If you’re having trouble with your license key, this blog post is for you. The main thing to check is that you’re copying the entire block, not just the hash (32 random characters) at the end. Here’s what the license manager should look like: Also, you’ll want to make sure you’re on the right version. If you bought a license on or after May 24, 2023, it will be a version 2 license. Version 2 licenses work on version 1.3.36, but not any older version. If you have a version 2 license, make sure you get the latest version here. […]

The post License Issues appeared first on Modern CSV.

]]>
If you’re having trouble with your license key, this blog post is for you. The main thing to check is that you’re copying the entire block, not just the hash (32 random characters) at the end. Here’s what the license manager should look like:

License Key

Though extraordinarily subtle, this is not an actual working license.

Also, you’ll want to make sure you’re on the right version. If you bought a license on or after May 24, 2023, it will be a version 2 license. Version 2 licenses work on version 1.3.36, but not any older version. If you have a version 2 license, make sure you get the latest version here.

If you have a version 1 license (i.e. you bought before May 24, 2023) and it’s not working, you may be on version 2 of the app. You can either upgrade to a version 2 license here or download version 1.3.36 of the app here.

In rare cases, copying and pasting might not work. In that case, you can drag and drop the license file attached to the email into the License Manager window (be sure to drop it in there and not the table editor). The License Manager window will copy the contents of the file like so:

Drag and drop license

One more possible issue is if you’re trying to use a cracked license, it will probably be rejected. If you didn’t get it from us, it’s not valid. If you feel bad and want forgiveness, you can buy it here.

If you’re still having trouble with it, just let us know here or reply to the license email.

The post License Issues appeared first on Modern CSV.

]]>
A Text Editor for CSV Files https://www.moderncsv.com/a-text-editor-for-csv-files/ Thu, 18 Mar 2021 01:23:12 +0000 https://www.moderncsv.com/?p=1301 I’m a huge fan of some of the best text editors out there- Sublime Text, Atom (RIP), and Visual Studio Code. I even used them to code up Modern CSV. I felt there should be a similarly great text editor specifically for CSV files. Of course, you can use them to edit CSV files. In fact, they each have plug-ins specifically for CSVs. However, they still can’t overcome the fact that straight text editors really are not equipped to handle columns. On the other hand, Modern CSV handles columns just as well as rows. Here are three characteristics these text […]

The post A Text Editor for CSV Files appeared first on Modern CSV.

]]>
I’m a huge fan of some of the best text editors out there- Sublime Text, Atom (RIP), and Visual Studio Code. I even used them to code up Modern CSV. I felt there should be a similarly great text editor specifically for CSV files. Of course, you can use them to edit CSV files. In fact, they each have plug-ins specifically for CSVs. However, they still can’t overcome the fact that straight text editors really are not equipped to handle columns. On the other hand, Modern CSV handles columns just as well as rows. Here are three characteristics these text editors and Modern CSV have in common.

1. Command Palette

Sublime Text, Atom, and Visual Studio code call it a palette and Modern CSV calls it a launcher because I like that term better, but it’s the same thing. It’s a convenient way to search for commands and invoke them. These palettes/launchers use fuzzy search, so sloppy typing is OK (to an extent). By default, ctrl+shift+p calls them for each product. On Modern CSV, ctrl+l (for launcher) also calls it.

Atom command palette

Atom’s command palette

Modern CSV command launcher

Modern CSV’s command launcher

There is one feature that Modern CSV has in its launcher that the others don’t- it shows the current settings for commands that involve changing settings.

Modern CSV command launcher showing settings- something the text editors do not do.

Modern CSV’s command launcher with current settings

2. Multiple Cursors

Multiple cursor support is such a small and powerful feature. It’s a wonder human beings took so long to start using them. The big 3 text editors have multiple cursors whereas Modern CSV allows simultaneous operations on multiple cells. This, in my opinion, is one of the most addicting aspects to these products. Before I discovered this, I had no idea what I was missing. Discovering it was possible was like being yanked out of the matrix.

Morpheus wants you to know you don't have to type the same thing over and over.

Multiple cursor support is a red pill. Single-cursor editors are the matrix.

And it extends well beyond typing too. Just as most editing commands work on multiple cursors, they also work on multiple cells in Modern CSV.

Sublime Text has multiple cursor support along with Atom and Visual Studio Code.

Multiple cursors in Sublime Text working it on Modern CSV code.

Modern CSV has multiple cell editing support.

Multiple cell editing in Modern CSV on super important data.

3. Keybindings

Like the big 3 text editors, Modern CSV is designed with keyboard ninjas in mind.

Using keyboard shortcuts in a text editor to code up keyboard shortcuts in Modern CSV is next-level code ninja.

An actual picture of me* coding up Modern CSV’s keyboard shortcut capability. (*not really)

Virtually all commands in Modern CSV can have a keyboard shortcut attached to them. While the default for most commands is no shortcut, you can add one or even several if you want. For those that do have a default, you can change it if you don’t like it. To do that, you can call the Edit Keyboard Shortcuts command. When you do, a CSV file will open where you can set your preferred shortcuts. As soon as you save it, the changes will become active and they’ll show up in the launcher and menu.

Many of the default shortcuts will look familiar to fans of Sublime Text, Atom, and Visual Studio Code:

Command Shortcut (Windows, Linux) Shortcut (Mac)
Command Launcher ctrl+shift+p or ctrl+l cmd+shift+p or cmd+l
Remove Rows ctrl+shift+k cmd+shift+k
Remove Columns ctrl+shift+l cmd+shift+l
Insert Rows After ctrl+enter cmd+enter
Insert Columns After ctrl+shift+enter cmd+shift+enter
Move Rows Up/Down alt+shift+up/down alt+shift+up/down
Move columns Left/Right alt+shift+left/right alt=shift+lift/right
Move cell Contents Up/Down/Left/Right alt+up/down/left/right alt+up/down/left/right
Convert to Upper/Lower Case ctrl+k,ctrl+u/l cmd+shift+u/l
Go to File ctrl+p cmd+p
Go to Cell ctrl+g cmd+g
Commands with default shortcuts similar to those found in the big 3 text editors

Here are a few more commands similar to what you find in the text editors but that have different keyboard shortcuts for various reasons.

Command Shortcut (Windows, Linux) Shortcut (Mac)
Duplicate Rows ctrl+alt+r cmd+alt+r
Duplicate Columns ctrl+alt+c cmd+alt+c
Duplicate Selected Cell Contents Up/Down/Left/Right ctrl+alt+up/down/left/right cmd+alt+up/down/left/right
Select Entire Rows ctrl+shift+r cmd+shift+c
Select Entire Columns ctrl+shift+c cmd+shift+c
Select Entire Table ctrl+shift+t or ctrl+a cmd+shift+t or cmd+a

Some have complained that it doesn’t have a Vim-like modal interface. This is a tool for keyboard ninjas, not keyboard samurai. Still, if you want that, let me know here. The more I hear about something, the more likely I am to do it.

Try Modern CSV for Free Today

If you’re a fan of these text editors and you find yourself working with CSV files a lot, Modern CSV is worth a try. Most of the above mentioned features are included in the free version of Modern CSV. Here’s a non-exhaustive list of the free features:

  • Load ultra-large files (no file size limit on the free version)
  • Insert/Remove/Duplicate rows and columns
  • Sort
  • Open files with a variety of delimiters and character encodings
  • Operate on multiple rows/columns cells at once
  • Customize keyboard shortcuts

If you want to go above and beyond all that, you can upgrade to Premium. You’ll get all of the above plus:

  • Filter and hide rows and columns
  • Join and split cells, rows, and columns
  • Case conversion
  • A whole bunch more

 

The post A Text Editor for CSV Files appeared first on Modern CSV.

]]>
Transpose CSV Files https://www.moderncsv.com/transpose-csv-files/ Fri, 12 Mar 2021 21:44:00 +0000 http://localhost/mcsv-creatink/?p=439 Why would you ever want to transpose a CSV file? One good reason is that CSV files usually have their records arranged in rows and they sometimes have wide columns. That means you have to do a lot of horizontal scrolling if you want to view the fields in a single record. That’s annoying. One remedy is to transpose the whole CSV with the Transpose Table command. The default keyword is ctrl+alt+t. The records are now arranged in columns with the fields shown vertically. Rather than showing just a few at a time, you can view dozens at a time. […]

The post Transpose CSV Files appeared first on Modern CSV.

]]>
Why would you ever want to transpose a CSV file? One good reason is that CSV files usually have their records arranged in rows and they sometimes have wide columns. That means you have to do a lot of horizontal scrolling if you want to view the fields in a single record. That’s annoying.

CSV file with records that are difficult to read because the columns are too wide.

Most delicious CSV file ever.

One remedy is to transpose the whole CSV with the Transpose Table command. The default keyword is ctrl+alt+t.

CSV file that's been transposed so the records are much easier to read.

The records are now arranged in columns with the fields shown vertically. Rather than showing just a few at a time, you can view dozens at a time. Now, you can easily scan your eye over them to find what you’re looking for. When you’re done, you can undo it by hitting ctrl+z and reverting it back.

Transposing part of the CSV file

In Excel, if you want to transpose a segment of a table, you have to copy it and paste it with the Transpose paste option.

With Modern CSV, you can transpose it easily with the Transpose Selected Cells command.

I’m not sure why you’d want to do what I did here, but the option’s there.

The transpose features are only available in the Premium version of Modern CSV. With the free version, you can still do a bunch of useful things, like:

  • Load ultra-large files (no file size limit on the free version)
  • Insert/Remove/Duplicate rows and columns
  • Sort
  • Open files with a variety of delimiters and character encodings
  • Operate on multiple rows/columns cells at once
  • Customize keyboard shortcuts

If you upgrade to Premium, you get the CSV transpose features plus:

  • Filter and hide rows and columns
  • Join and split cells, rows, and columns
  • Case conversion
  • A whole bunch more

By the way, I have only eaten in one Chicago pizza restaurant before and it was fantastic. I’m not sure which one, but it very well could have been Gino’s East, so I’m just going to pretend it was. If you ever find yourself in Chicago, take my wholehearted recommendation and try out Gino’s East even though I might not have ever been there. Hey, it look delicious anyway, so I’m probably not leading you astray.

The post Transpose CSV Files appeared first on Modern CSV.

]]>
Leading Zeros in Excel vs. Modern CSV https://www.moderncsv.com/leading-zeros-in-excel-vs-modern-csv/ Mon, 15 Feb 2021 23:50:55 +0000 https://www.moderncsv.com/?p=1215 Everyone knows that disappearing leading zeros in Excel is a problem, yet Microsoft never bothers to address this. It is a giant headache, but Modern CSV will never ever ever do that to you, promise! Here are some visual aids with bad fake data. Excel hides leading zeros Modern CSV always shows them Leading zeros in all their glory (oh yeah, plus Modern CSV has a dark theme, which Excel doesn’t because Excel is old). Adding leading zeros in Excel Now, what if you want to add leading zeros in Excel? Say, every number should be 10 digits long and […]

The post Leading Zeros in Excel vs. Modern CSV appeared first on Modern CSV.

]]>
Everyone knows that disappearing leading zeros in Excel is a problem, yet Microsoft never bothers to address this. It is a giant headache, but Modern CSV will never ever ever do that to you, promise! Here are some visual aids with bad fake data.

Excel hides leading zeros

Excel hides leading zeros in your data.

Modern CSV always shows them

Modern CSV shows leading zeros in your data.

Leading zeros in all their glory (oh yeah, plus Modern CSV has a dark theme, which Excel doesn’t because Excel is old).

Adding leading zeros in Excel

Now, what if you want to add leading zeros in Excel? Say, every number should be 10 digits long and zero-padded if necessary. Well, you can Google it and read a long article showing 9 Ways to Add Leading Zeros in Excel, none of which look especially straightforward.

Adding leading zeros in Modern CSV

In Modern CSV, there’s one way to add leading zeros it and it’s straight-forward: the Zero-Fill Whole Numbers command.

Add leading zeros in Modern CSV with the Zero-Fill Whole Numbers command.

It’ll then ask you how many zeros you want:

Set the number of digits for the Zero-Fill Whole Numbers command.

And mission accomplished:

A column of data after the Zero-Fill Whole Numbers command.

It operates on every selected cell at once, so you can do a whole column or even several columns super quickly.

I should add that this feature is only available in the Premium version of Modern CSV. Of course, you can use the Free version to do all sorts of things, like:

  • Load ultra-large files (no file size limit on the free version)
  • Insert/Remove/Duplicate rows and columns
  • Sort
  • Open files with a variety of delimiters and character encodings
  • Operate on multiple rows/columns cells at once
  • Customize keyboard shortcuts

If you upgrade to Premium, you get the following functionality:

  • Filter and hide rows and columns
  • Join and split cells, rows, and columns
  • Transpose whole tables or segments
  • Add leading zeros with the Zero-Fill Whole Numbers command
  • A whole bunch more

The post Leading Zeros in Excel vs. Modern CSV appeared first on Modern CSV.

]]>
Editing PLC-exported CSVs with Flexible Data Headers https://www.moderncsv.com/plc-exported-csvs/ Sat, 23 Jan 2021 19:37:59 +0000 http://localhost/mcsv-creatink/?p=367 Most CSV editors assume that the first row of your table will be your data headers. That assumption often holds, but not always. I’ve come across many CSV files where the first few rows are metadata and the data headers are several rows down. For instance, I used to work in industrial automation programming PLCs (Programmable Logic Controllers). These are computers that control the equipment in factories, buildings, oil and gas pipeline stations, etc. I often exported program data to CSVs to quickly make changes and import them back in. Here’s what a typical CSV looks like. Obviously, we want […]

The post Editing PLC-exported CSVs with Flexible Data Headers appeared first on Modern CSV.

]]>

Most CSV editors assume that the first row of your table will be your data headers. That assumption often holds, but not always. I’ve come across many CSV files where the first few rows are metadata and the data headers are several rows down. For instance, I used to work in industrial automation programming PLCs (Programmable Logic Controllers). These are computers that control the equipment in factories, buildings, oil and gas pipeline stations, etc. I often exported program data to CSVs to quickly make changes and import them back in. Here’s what a typical CSV looks like.

Exported PLC CSV file

Obviously, we want the data header to be row 6 rather than the first row. That can easily be set by simply right clicking anywhere on row 6 and selecting Set Header Rows to Selected Row.

Right-click to set header rows

Why bother? If you just want to make a quick change, there’s probably no reason. However, if you want to sort or filter your data, it will not operate on the data above the header row. Furthermore, you can “freeze” the header so it’s always there even as you scroll down. Just bring up the command launcher (ctrl+L) and type freeze row.

Freeze header rows from the command launcher (ctrl+L)

Alternatively, you can have it always freeze rows in the Settings file (Edit Settings). Once you freeze the header rows, you can scroll through the file and they will always be visible.

Header rows are frozen

You can also freeze the first few columns so they’re always visible. You can even sort and filter along rows.

Header rows and columns are frozen

The post Editing PLC-exported CSVs with Flexible Data Headers appeared first on Modern CSV.

]]>
Why Excel Sucks and Modern CSV is Awesome (at least for CSVs) https://www.moderncsv.com/why-excel-sucks-and-modern-csv-is-awesome-at-least-for-csvs/ Sun, 06 Dec 2020 20:11:13 +0000 https://www.moderncsv.com/?p=1027 Using Excel for CSV files is like using Word for developing code. You could do it if you like suffering and mostly program in Malbolge, but for everyone else, it’s just the wrong tool for the job. Let’s first cover the main functionality Excel has that Modern CSV does not: Figure plotting Formulas Macros Pivot Tables Individual cell formatting (font, color, etc.) Embedding pictures, videos, etc. As a general spreadsheet tool, Excel is great when you need these things, but it’s a poor tool for dealing with CSV files. Here are the main complaints people have about it: Automatically formats […]

The post Why Excel Sucks and Modern CSV is Awesome (at least for CSVs) appeared first on Modern CSV.

]]>
Using Excel for CSV files is like using Word for developing code. You could do it if you like suffering and mostly program in Malbolge, but for everyone else, it’s just the wrong tool for the job. Let’s first cover the main functionality Excel has that Modern CSV does not:

  • Figure plotting
  • Formulas
  • Macros
  • Pivot Tables
  • Individual cell formatting (font, color, etc.)
  • Embedding pictures, videos, etc.

As a general spreadsheet tool, Excel is great when you need these things, but it’s a poor tool for dealing with CSV files. Here are the main complaints people have about it:

  • Automatically formats data in undesirable ways
  • Limits you to 1,048,576 rows and 16,384 columns
  • Slow loading for large files
  • Locks files so they can’t be edited externally

Modern CSV was designed to address all of these problems plus a few most people probably didn’t even think to complain about. Let’s go through these one by one.

Excel’s CSV Deficiencies

Excel automatically formats data in undesirable ways

Suppose you have a list of addresses and there’s a column for zip codes. Some zip codes start with 0, so Excel will “helpfully” remove these leading 0s for you:

Excel doesn't show your actual CSV data.

OK, sorry about the bad fake data, but if you happen to live in a zip code that starts with 0, Excel can’t find you …

Modern CSV is awesome at showing you your actual data.

but Modern CSV can! Then, there’s my personal favorite- turning numbers in the 40,000 range into dates. Modern CSV does not do that (although it does have a Convert Date/Time Format command, but you have to actually tell it to do that. No assuming what your data really is).

Excel limits you to 1,048,576 rows and 16,384 columns

Most CSV files are shorter than a million rows, but some are much longer if they’re auto-generated by software or hardware. If you need to see the whole thing, Excel isn’t the tool for you because you will see this:

Excel fails to load your whole file

And when you scroll to the bottom of the file, you will see this:

Excel thinks this is the bottom of the file. It isn't.
This is not the end of the file. This is only the end of what Excel can show you.

With Modern CSV, you see this:

Modern CSV shows you every row in your file.
This is the end of the file.

Excel loads large files slowly

The portion of the file it can load Excel loads slowly. Here’s a video of Excel loading the same file from above.

I had to snip out the middle so you don’t click away out of boredom. So it takes over 45 seconds to load less than 1/4 of the file. Here’s Modern CSV opening the same file in read-only mode:

That took 7.5 seconds and it loaded the whole file. In edit mode, it takes 28 seconds to load the whole file (rather than just 25% of the file). As you can see, Excel handles large files poorly.

Excel locks files so they can’t be edited externally

What if you’re running a script that writes to a CSV file and you want to see it updated? With Excel, you can’t even run the script because it’ll lock the file. With Modern CSV, you can see the changes happen in real time.

Excel locks your file.
Access denied by Excel.
Modern CSV allows you to edit your file externally.
Your scripts run smoothly with Modern CSV. Plus, you can see changes in real time.

Additional Ways Modern CSV is Awesome at CSVs

There’s a lot more to Modern CSV than compensating for Excel’s CSV deficiencies. Here are just a few advantages:

Improved editing features

Suppose you want to move a column. Just select any cell in that column and hit ctrl+alt+left/right. That’s it. Done. It also works on several columns at once or rows with ctrl+alt+up/down.

Modern CSV makes it super easy to move rows and columns around.

Deleting rows (ctrl+shift+k) and columns (ctrl+shift+l) is just as easy:

Modern CSV makes it easy to delete rows and columns.

Plus, you can insert and duplicate rows and columns (insertion: alt+r and alt+c, duplication: ctrl+alt+r and ctrl+alt+c).

You can edit several cells at the same time:

Modern CSV allows multi-cell editing.

And with series too:

Modern CSV allows series input.

Multiple file support

If you have folders full of CSVs that you want to work with, Excel will open up a new instance per file. Modern CSV, on the other hand, can handle multiple CSVs in the same instance with the use of the Tab bar and the Sidebar. Just drag and drop a folder into Modern CSV and it will automatically add the CSV, TSV, TAB, etc. files to the sidebar.

There’s also a nifty Go to File feature where you can hit ctrl+p and type in the name of any file in the folder. It uses fuzzy search, so just a partial name will do.

Modern CSV makes it easy to switch between files.

Keyboard shortcuts

Modern CSV is a great tool for keyboard ninjas. Many commands have a default keyboard shortcut and almost all of them can have a shortcut if you want. Furthermore, if you don’t like the default shortcuts, you can change them. Just use the Edit Keyboard Shortcuts command and edit the file. For instance, if you use the Join Selected Cells Horizontally command a lot, which doesn’t have a shortbut by default, and want to assign ctrl+j to it, it’s super easy:

Modern CSV has many customizable keyboard shortcuts.

These are just a few of the advantages Modern CSV has over Excel for handling CSV files. See for yourself.

You can use the free version forever if you like. There’s also a Premium version with extra features, including:

  • Filter rows and columns
  • Hide rows and columns
  • Duplicate, rename, and delete files within the program
  • Join and split cells, rows, and columns
  • Various advanced editing tools

The post Why Excel Sucks and Modern CSV is Awesome (at least for CSVs) appeared first on Modern CSV.

]]>