24 ms·
Modern CSV Version 2 Beta is now available
- _jordan 4y agosweet. looks good. what gui toolkit is this using?
- ksherlock 4y agoQt.
- _jordan 4y agoneat. python or c++? also I tried to enter in my email into where it says "Get useful tips and updates in your inbox." and it is stuck saying "processing"
- evanem 4y agoC++ (I'm the developer). I just tested the email form myself and saw the same thing, but my address was added, so yours probably was too. I'll be sure to fix that.
- rmateu 4y agoLove this app so much. Speed on M1 for the intel version is great. Downloading now to test.
- evanem 4y agoHi, I'm Evan, developer of Modern CSV. I started developing this out of frustration with how a certain spreadsheet program handles CSV files. I took inspiration from the text editors we've all come to love and this is the result. It's available for Windows, Mac, and Linux. Here are some of the features that make it stand out: - Multiple cell/row/column editing - Easy navigation between files - Keyboard shortcut customization - Command palette - Read-only mode for super large files With version 2, I'm adding some basic data analysis tools, some new themes, M1 compatibility for Mac users, and a whole bunch of editing commands, most of which are user-requested (well, technically all since I use my own product). The current beta version will work until June 25. It includes all Premium features without the need for a license. I'll be happy to hear any feedback you have about it!
- joenathanone 4y agoI'm looking forward to trying this, learned the hard way that Excel will make unwanted changes without notice to CSV files. Like SSNs that start with zero having there leading zeros silently removed, breaking things.
- aorth 4y agoAnd dates! And ISSNs (I work with library data)! Ugh.
- jetbooster 4y agoAnd credit card numbers. string -> interpreted as a number -> displayed in scientific notation -> saved to disk with the last 3 or 4 digits zeroed
- dspillett 4y agoOptimist: the glass is 1/2 full Pessimist: the glass is 1/2 empty Excel: the glass is 1900-02-01 --- We've had bugs raised against our software because the clients use meeting titles like 1-2-1 for supervisory reviews which when extracted for reporting and opened in Excel (they love to dump data into Excel no matter what report functions you include directly in the application) get interpreted as a date even when output as a quoted string in the CSV file. Try explaining to a client that we have formatted it correctly and Excel is reading it wrong… (We could of course output Excel files directly, but some of them can't download office documents from web apps because of security policy at their end.) Given how badly common tools mangle unambiguously correct CSV data, how many variations there are which make “unambiguously correct CSV data” a somewhat small proportion of what is out there, and how many tools not only expect but require mis-formatted data and/or output it, it is scary how much the format is relied upon in major industries.
- hoosieree 4y agoBug-for-bug compatible is a direct consequence of Postel's law: https://en.wikipedia.org/wiki/Robustness_principle https://en.wikipedia.org/wiki/Robustness_principle
- twobitshifter 4y agoVery cool. The listing of the repeatable processing commands reminds me of trifacta wrangler. Is the plan to grow this along those lines?
- evanem 4y agoLooking at their website, I have in mind some of the things they do, but some of my ideas might have to go into a separate product. I'm careful not to go too far beyond what can fairly be called a CSV editor.
- jdironman 4y agoCant wait to test and see how it handles very large files. Love the in place command system to be honest. The less clicking I have to do, the beter.
- fomine3 4y agoLooks great. How big files works fine?
- Scalene2 4y agoThe site mentions 570MB file test, which is more than excel can handle. > 1 million lines.
- ElectricalUnion 4y agoModern Excel uses a ZIP bag of XML, so it's pretty possible that a 570MiB .xlsx has way more that 1 million lines over several spreadsheets.
- evanem 4y agoIt can handle about 2 billion rows and columns. Aside from that, it's limited by your machine's memory. If you open a file in edit mode, the memory footprint is about 3-4x the file size. If you open in read-only mode, it's only a fraction of the file size (maybe 20-25% or so).
- replwoacause 4y agoLooks nice. Do you plan on adding more data transformations functions? I’d love to be able to use this to do some serious data munging.
- evanem 4y agoI do. I have phone numbers and more extensive number transformations on my to-do list. Those probably won't make it in there for version 2.0, but maybe 2.1 or 2.2.
- replwoacause 4y agoAwesome, here are some ideas for you to consider: 1. Calculate columns using expressions that reference other columns 2. If/then logic to build rules around calculations 3. Aggregates 4. Lookup values from other columns or columns from other CSV files that have been loaded 5. Joins 6. More string manipulation functions (e.g. extract substring, trim left, trim right, regex operations)
- andy800 4y agoAn opposing viewpoint: please don't add any of these suggested features. I prefer the programs that manipulate CSV to only express the actual contents of the file. Formulas are the antithesis of that. The beauty, and utility, of CSV is its simplicity. All of the requested functionality can be easily performed in SQL, Excel, Pandas, R, Krangl, etc. Please keep formulas out of a CSV editor.
- usrusr 4y agoI agree with that purity argument, but I wonder if it really has to preclude all spreadsheet calculator ambitions: just take the "multiple files project" approach and make it good. One csv for raw data, one csv for configuration/formulas, one csv for intermediates/results. Make full use of whatever awesome multifile read/edit the software presumably has already and then maybe go a little beyond. The "configuration" csv might have some hashbang equivalent defining a line offset for the header that isn't mapped into input/output files (perhaps a concept of "negative line numbers" for project properties?), contains references to those peer files and maybe activates project options like "display peer file contents in cells that are otherwise empty" if you want your working surface to remain "2d". The argument to have this add-on (I'm not sure that it should be part of the product or a separate extension) would be that it would be a shame to learn all the UI ergonomics of the plain reader/editor and then not be able to leverage them for some calculations as well.
- febed 4y agoRon’s CSV Editor is also worth a look for easy CSV editing. [0] https://www.ronsplace.eu/Products/RonsEditor/Download https://www.ronsplace.eu/Products/RonsEditor/Download
- lgas 4y agoI've recently become enamoured with VisiData[0] for similar tasks. [0] https://www.visidata.org/ https://www.visidata.org/
- DougMellon 4y agoI was just introduced to VisiData at work and have fallen in love with it.
- kennydude 4y agoWoah - that's probably one of the best websites I've seen for a CLI based tool
- aorth 4y agoFirst I've heard of this tool. I've been using the Python-based csvkit and the Java-based OpenRefine (formerly Google Refine) to work with and clean CSVs for years. Thanks for the recommendation.
- justusthane 4y agoVisiData is really, really, really cool and I have fallen in love with it. There's a great primer here: https://jsvine.github.io/intro-to-visidata/ https://jsvine.github.io/intro-to-visidata/
- victor106 4y agoThis looks awesome, Due to some weird process we have a need to look at files that have a different delimited than a comma, Is the delimiter configurable?
- Scalene2 4y agoIt looks like it auto-detects the delimiter.
- evanem 4y agoYes, it's configurable. It has an auto-detect feature, but if it guesses wrong, you can reload the file with a different delimiter. You can also set a different delimiter to save. In this version, you can change it for an individual file with the File Metadata feature. Also, one of the preference files is called File Extension Options. That may help too. If you need help getting it to work like you want, let me know.
- daemin 4y agoWould it be possible to use the group and record separator characters instead of newline and comma (or semicolon)? ASCII codes 0x1D and 0x1E
- clircle 4y agoWhy does the cookie dialog only have one button? (On brave browser/iPhone SE).
- andi999 4y agoHow do you deal with decimal separator ',' used in a few countries instead of '.'?
- avgcorrection 4y agoMost countries by raw country count.
- andi999 4y agoTrue. https://en.wikipedia.org/wiki/Decimal_separator#/media/File:DecimalSeparator.svg https://en.wikipedia.org/wiki/Decimal_separator#/media/File:...
- deaddodo 4y agoLess people, by raw population count.
- deleted 4y ago[deleted]
- bzxcvbn 4y agoJust for fun (and because I don't like unsourced claims) I fired up Mathematica to sum up the population of the countries listed. Here are the results: In[1]:= comma = {"Albania", "Algeria", "Andorra", "Angola", "Argentina", "Armenia", "Austria", "Azerbaijan", "Belarus", "Belgium", "Bolivia", "BosniaHerzegovina", "Brazil", "Bulgaria", "Cameroon", "Canada", "Chile", "Colombia", "CostaRica", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "EastTimor", "Ecuador", "Estonia", "FaroeIslands", "Finland", "France", "Germany", "Georgia", "Greece", "Greenland", "Hungary", "Iceland", "Indonesia", "Italy", "Kazakhstan", "Kosovo", "Kyrgyzstan", "Latvia", "Lebanon", "Lithuania", "Luxembourg", "Macau", "Mauritania", "Moldova", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Namibia", "Netherlands", "Macedonia", "Norway", "Paraguay", "Peru", "Poland", "Portugal", "Romania", "Russia", "Serbia", "Slovakia", "Slovenia", "Somalia", "SouthAfrica", "Spain", "Suriname", "Sweden", "Switzerland", "Tunisia", "Turkey", "Turkmenistan", "Ukraine", "Uruguay", "Uzbekistan", "Venezuela", "Vietnam", "Zimbabwe"}; In[2]:= Plus @@ (Entity["Country", #]["Population"] & /@ comma) Out[2]= Quantity[1990645326, "People"] In[3]:= period = {"Australia", "Bangladesh", "Botswana", "Cambodia", "Canada", "China", "DominicanRepublic", "Egypt", "ElSalvador", "Estonia", "Ethiopia", "Ghana", "Guatemala", "Guyana", "Honduras", "HongKong", "India", "Ireland", "Israel", "Jamaica", "Japan", "Jordan", "Kenya", "NorthKorea", "SouthKorea", "Libya", "Liechtenstein", "Luxembourg", "Macau", "Malaysia", "Maldives", "Malta", "Mexico", "Myanmar", "Namibia", "Nepal", "NewZealand", "Nicaragua", "Nigeria", "Pakistan", "Panama", "Peru", "Philippines", "Qatar", "SaudiArabia", "Singapore", "Somalia", "SriLanka", "Switzerland", "Syria", "Taiwan", "Tanzania", "Thailand", "Uganda", "UnitedArabEmirates", "UnitedKingdom", "UnitedStates"}; In[4]:= Plus @@ (Entity["Country", #]["Population"] & /@ period) Out[4]= Quantity[5210743028, "People"] It's not accurate because I'm not taking into account things such as "only in French Canada" or "only in currency", so some countries are double counted. But it gives a rough estimate. Five billion people for the dot, two for the comma.
- molsson 4y agoHmm, why did you build it as a desktop app in 2022? Seems like a no brainer to have this in the cloud so that you can seamlessly process huge files and integrate with various third-party APIs. I've used https://www.gigasheet.com/ https://www.gigasheet.com/ for this before (which is cloud-based). And there is also the open source visidata project.
- andy800 4y agoDefinitely not a no-brainer. Don't want my CSVs integrating with APIs (or in the cloud at all), and I'm confident the desktop version handles large files better than a cloud solution would, as well as being far more responsive, quick, compact than any web-based solution.
- GolDDranks 4y agoI'm absolutely positive that you can make a desktop app a lot more snappy and usable than any browser-based solution. Especially if the point is to edit files on your computer – no way I'd want to upload a 100MB CSV to cloud before even having a sneak peek, but a (good) desktop app would allow a quick sneak peek of even a 10GB CSV.
- Sakos 4y agoI have zero interest in using business data with some online service that nobody else at my company has vetted. I vastly prefer being able to try and use a desktop application where I can be sure sensitive data is where I have 100% control over it.
- replwoacause 4y agoNot everyone wants their solution hosted in the cloud. I would much rather have this as a desktop app that I can own than yet another SaaS product that I have to rent...
- cfn 4y agoLooks great! It took me a few tries to understand how the Settings work and I would explain it in the help if I were you. I was trying to change the theme from dark to light and took me a while to understand that I had to add the new value on the righmost cell instead of changing the default value column :) In my humble opinion the light theme would be better as a default because I am used to Excel. I suppose most Excel users would say the same.
- evanem 4y agoThat seems to be a common issue. I put "!!! Make changes below !!!" above the User Value column, but if you scroll straight down to the Theme row, you may miss that. Perhaps I could swap the User Value and Default Value column or pop up a message if the user edits the Default Value column.
- pipiscrew 4y ago@molsson - I will say privacy.. Not always web app is the best solution... ;) I develop a similar desktop application called Text_Comparer [0], days ago I update it to v1.7.2 Includes features that cannot be found on ModernCSV or Rons CSV editor, read the included help.md [0] https://www.pipiscrew.com/threads/text_comparer.42/ https://www.pipiscrew.com/threads/text_comparer.42/ if you cannot access the page, try a proxy.
- rwmj 4y agoDo they have a realistic plan to get Excel to use this? If not, it's not going to be very useful in the real world.
- donio 4y agoFor Emacs users there is a nice csv-mode on ELPA. It has aligned display, field based navigation and some basic sorting and manipulation options. And you have access to all the usual Emacs goodies of course. Another option is to import into an org-mode table and then re-export as csv when needed.
- deleted 4y ago[deleted]
- 0xffffabcd 4y agoOn Windows 10 (Version 10.0.19044 Build 19044) the main menu items show up on main monitor while the application is running on my second monitor. I'm posting this since the developer is here and replying to the comments.
- no_time 4y agoThis is really close to what I've been wanting to build for a while. A sort of excel for programmers with the added ability to write real lua or python code in each cell instead of "formulas". BTW, I'm suprised this is written in Qt. Looks very modern Windows, in a good way of course :^)
- wruza 4y ago"formulas" Excel formulas are worst abominations of semi-programming. My coworker took advanced excel courses and I sometimes just can’t help her with these monstrosities because everything around them sucks if it’s something more than a simple max-3-term expression. If it was just python or lua, I’d cast few spells and she’d understand and use them much more easily.
- evanem 4y agoYou and I think alike because that was my initial thought. The practical considerations make it tricky. I may still do it, but I first plan to embed Python to allow users to implement their own commands.
- sundarurfriend 4y agoI've been meaning to check out sc-im ("Spreadsheet Calculator Improvised" https://github.com/andmarti1424/sc-im https://github.com/andmarti1424/sc-im) for a while now. Among its listed features: > GNUPlot interaction. > Scripting support with LUA. Also with triggers and c dynamic linked modules. > Implement external functions in the language you prefer and use them in SC-IM. Does anyone here have experience using it? Is it stable and reliable, and does it handle large files well?
- foreigner 4y agoHas anybody figured out a convenient way to post tabular data in a Slack message that doesn't look horrible? I usually use an "ASCII Table" tool to format the CSV and then post the results in a code block, but it's a PITA.
- glinkot 4y agoThis is nicely done. Finding a reasonable csv editor was a 'white whale' I searched for for some years. I found that with EmEditor (commercial, I'm not associated with them), the killer feature is swapping between normal text editor and csv cell based editing seamlessly. I still tell anyone I see dealing with csv's about it. I wish the macros weren't in their own language, but performance on large files is crazy fast.