Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: Spreadsheet With Decent Programming Language?

timothy posted about a year and a half ago | from the index-cards-and-a-hole-punch dept.

Programming 332

First time accepted submitter slartibartfastatp writes "Spreadsheets are very flexible tools for data analysis and transformations, the obvious options being MS Excel and LibreOffice. However, I found increasingly infuriating to deal with the VBA--dialect functions or (even worse) its translated versions. Is there any spreadsheet that allows usage of a decent programming language in its formulae? I found PySpread intriguing, but still very beta (judging from its latest release version 0.2.3). Perl or even javascript would be better options than =AVERAGE(). Do you know any viable alternatives?"

cancel ×

332 comments

Sorry! There are no comments related to the filter you selected.

SIAG (5, Informative)

lisaparratt (752068) | about a year and a half ago | (#42898977)

As old as the hills: http://siag.nu/siag/ [siag.nu]

My problem is quite the opposite. (0)

Z00L00K (682162) | about a year and a half ago | (#42899505)

How shall I make it hard for people to use Excel for just about anything.

Sometimes the solution to a problem is manual work with an Excel spreadsheet.

Re:My problem is quite the opposite. (2)

Jane Q. Public (1010737) | about a year and a half ago | (#42899787)

"How shall I make it hard for people to use Excel for just about anything."

I thought Microsoft did a pretty good job of that already.

Seriously... when Windows was still relatively new, 1-2-3 for Windows was pretty good, and there were some other very good spreadsheet programs available (sadly, absent from Wikipedia's spreadsheet history page). Then people started to actually use Microsoft Excel, which they greatly improved and stuck in their Office suite. But it wasn't that their product was better; they just had the OS and "Office" advantage, which pretty much guaranteed them market share.

Re:My problem is quite the opposite. (2, Insightful)

Anonymous Coward | about a year and a half ago | (#42899929)

Excel was already a robust and popular application on Macs. And the original 123 for Windows was a thin wrapper around the DOS app and not considered very good. The fact that "Office" was half the price of Lotus+WordPerfect didn't hurt either.

Re:SIAG (-1)

Anonymous Coward | about a year and a half ago | (#42899861)

obvious - Lotus 1,2,3, or even VisiCalc

Scheme in a Grid (1)

Anonymous Coward | about a year and a half ago | (#42898991)

Have you looked at Scheme in a Grid [siag.nu] ?

Postgres (1)

Anonymous Coward | about a year and a half ago | (#42898995)

The last time I had to do something similar, and after I found the libreoffice calc to be just too weird for me, I just made a few tables in postgres, wrote a few functions and was done. YMMV, but it's definitely a lot easier to understand if you have any programming experience.

Diadem (1)

Anonymous Coward | about a year and a half ago | (#42899017)

Better than a spreadsheet.

Scriptable.

Biggest downside: It uses a heavily enhanced VB Script.

MATLAB? (5, Informative)

Anonymous Coward | about a year and a half ago | (#42899031)

Not a very elegant language, but way better than any spreadsheet that I know of.

Re:MATLAB? (3, Insightful)

Idbar (1034346) | about a year and a half ago | (#42899443)

Looks like I lost my mod points, but trying to make mathematical calculations and operations with a spreadsheet instead of a matrix oriented language seems like the failure on part of the submitter. Matlab is (and I assume the free Octave must be) great for data analysis and even plotting is a breeze.

COM Automation (0)

Anonymous Coward | about a year and a half ago | (#42899043)

Use C++ and write a xll or use C# and write a COM Automation plugin? Problem solved.

Re:COM Automation (3, Informative)

ByOhTek (1181381) | about a year and a half ago | (#42899119)

To my knowledge, C# can be used to write plugins for Excel, which should be able to handle the more complex macros.

Re:COM Automation (3, Informative)

Anonymous Coward | about a year and a half ago | (#42899221)

Yes, both outside COM automation and vSTO plugins that run in Excel http://msdn.microsoft.com/en-us/office/hh128771.aspx

Re:COM Automation (1)

Anonymous Coward | about a year and a half ago | (#42899289)

(same AC) I've written a large library of functions and found COM Automation to be the best route for exposing them to both VBA and the workbook (application.) domain. It's literally one of the major projects I developed and now maintain for my company. Directly you can't call managed code from Excel hence the COM, or a C++ Wrapper.

Re:COM Automation (0)

Anonymous Coward | about a year and a half ago | (#42899873)

(different AC)

Not that it's much better, but you could call javascript code [stackoverflow.com] from VBA. It would help you port future code to node.js and start moving things to a server. I would only do that for Excel 2003 or earlier. It'd be crazy if jQuery ajax calls can be made from VBA.

Starting with 2007, C# can be used for vsto plugins that add tabs and controls to that ribbon.

MS Offfice 2013 - Javascript apps (1)

Anonymous Coward | about a year and a half ago | (#42899047)

The latest version of MS Office allow writing apps in Javascript http://msdn.microsoft.com/en-us/library/fp160953.aspx

Re:MS Offfice 2013 - Javascript apps (4, Informative)

ByOhTek (1181381) | about a year and a half ago | (#42899367)

Wow... quite possibly one option that would be WORSE than VBA.

Re:MS Offfice 2013 - Javascript apps (1)

HaZardman27 (1521119) | about a year and a half ago | (#42899475)

Yes, it's so much better to expect users to learn a proprietary language they would otherwise never have any use for.

Re:MS Offfice 2013 - Javascript apps (1)

TheRealMindChild (743925) | about a year and a half ago | (#42899651)

BASIC?

Re:MS Offfice 2013 - Javascript apps (4, Insightful)

Motard (1553251) | about a year and a half ago | (#42899611)

What, exactly is wrong with =AVERAGE()?

Gnumeric (1)

richtopia (924742) | about a year and a half ago | (#42899071)

I am finishing my master's thesis and have used Gnumeric for all of my work, it is an effective spreadsheet although it is missing some features from Excel (to the frustration of my advisor).

The plugins are written in Python, and while I have not used them extensively they seem to be quite powerful compared to creating Excel macros.

Already there (0)

Anonymous Coward | about a year and a half ago | (#42899091)

Excel can already use VBA, which in turn can use IronPython.

Done.

Re:Already there (5, Funny)

rtfa-troll (1340807) | about a year and a half ago | (#42899633)

Excel can already use VBA, which in turn can use IronPython.

Done.

Awesome; but not quite done. At that point you can run an X86 emulator inside it [google.com] and boot Linux. Then you can run Firefox inside it and finally, you will have access to a sensible language [brainfuck.tk] .

Actually, this is one of the best Ask Slashdots ever. A language war enclosed inside a user interface design war enclosed inside a programmer pet hate.

Re:Already there (1)

Captoo (103399) | about a year and a half ago | (#42900109)

Funny! I wish I had some mod points.

plugins (0, Informative)

Anonymous Coward | about a year and a half ago | (#42899093)

There are plugins for Excel that let you use .net with it - so C#/VB.net or even C++/CLI.

with R, you don't need spreadsheets (4, Informative)

Anonymous Coward | about a year and a half ago | (#42899099)

www.r-project.org/

Pandas + IPython Notebook (5, Informative)

n1ywb (555767) | about a year and a half ago | (#42899107)

It's not exactly a spreadsheet, but Pandas is totally awesome and is useful for many tasks for which you might think of using a spreadsheet.

pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. Additionally, it has the broader goal of becoming the most powerful and flexible open source data analysis / manipulation tool available in any language. It is already well on its way toward this goal.

http://pandas.pydata.org/index.html [pydata.org]

IPython Notebook is sort of like a combination of the normal ipython shell and an IDE. You interact via your browser but it connects to a normal python process on your local (or remote?) system.

http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html [ipython.org]

I've used these tools together for many tasks for which I might otherwise have used a spreadsheet, particularly for "pivot tables" and time series analysis. Again, even combined they do not a spreadsheet make, but they are in many ways superior. They can handle very large data sets, and best of all you are doing it all in Python.

Re:Pandas + IPython Notebook (1)

n1ywb (555767) | about a year and a half ago | (#42899293)

I forgot to mention that there is some degree of integration between pandas and ipython notebook so it makes sense to use them together for interactive use.

Also before anybody digs on Python's performance, Pandas is built on NumPy which is written in C so it's relatively fast and memory efficient even on large data sets. NumPy is even working on automatic vectorization and paralelization for those really tough problems.

Re:Pandas + IPython Notebook (1)

Dartdog (1374159) | about a year and a half ago | (#42899299)

+1 for Pandas awesome.

Just do it the other way around (5, Insightful)

h4rr4r (612664) | about a year and a half ago | (#42899113)

Instead of a spreadsheet with good programming just program and output a spreadsheet. CPAN has plenty of packages for this.

Re:Just do it the other way around (3, Interesting)

CastrTroy (595695) | about a year and a half ago | (#42899295)

This. Pick any programming language you want, store the data in a real database, and write some code to output the results to CSV so it can be imported into Excel or any other spreadsheet.

Re:Just do it the other way around (2)

h4rr4r (612664) | about a year and a half ago | (#42899365)

You can even output to XLSX so that you can do multiple tabs and such.

Still using a normal language and a real DB is much better.

Re:Just do it the other way around (0)

Anonymous Coward | about a year and a half ago | (#42899597)

The xlsx format is an overly complicated mess.

If you can stand to live without embedded images, charts, and objects, try just exporting XMLSS (a.k.a. SpreadsheetML). It's the Office 2003 XML format, and it's quite simple to understand.

And from what I can tell, XLSX files are a zip archive containing XMLSS fragments in separate files in a specific folder structure. Embedded images and objects are references to image and binary files within the zip archive.

Re:Just do it the other way around (1)

h4rr4r (612664) | about a year and a half ago | (#42899647)

Yes, but CPAN has packages that do all the nasty work for you.

Re:Just do it the other way around (3, Informative)

alexander_686 (957440) | about a year and a half ago | (#42899503)

I would temper that enthusiasm. I work with accountants, Excel, and VBA.

Spreadsheets offer a familiar and flexible front end for non-tech users. We have spreadsheets where sections are ridge to handle the VBA but exposes data to the end user. It is easy to enter paramaters and see the updates quickily - much harder to do when you have to import a new CSV each time. The accountants then can easily customize the data for their needs – and it still prints out nicely on the printer.

So, while I have issues with Excel / VBA / Spreadsheets in general – sometimes it is the best option.

Re:Just do it the other way around (2)

h4rr4r (612664) | about a year and a half ago | (#42899579)

No, they are not the best option. It might seem like it now, but I have been down the road, soon there will be much pain.

At the very least get them using a real DB and not VBA. Trust me you will be far better served in the long run.

Re:Just do it the other way around (3, Interesting)

slartibartfastatp (613727) | about a year and a half ago | (#42899601)

(submitter here)

Yes, I end up doing this once in a while. I also use R, Perl, PHP, or even bash to process some data. However, in some cases it is handy to have a view of the data while you're processing it.

For instance, suppose you need to run a regexp function over the 12nd column of a matrix; usually I save data as a CSV, cat file.csv | perl -ne '@a=split/,/; $tmp = $a[11]; .... ' > new_file.csv, load the new CSV, check for errors, debug, repeat... sometimes is just a one-time task I need to do.

Re:Just do it the other way around (0)

logjon (1411219) | about a year and a half ago | (#42899673)

+1 (Common Sense)

Re:Just do it the other way around (1)

Rafke (22542) | about a year and a half ago | (#42899923)

This is indeed the process that I have used. However, if I want to run a regex over a range of cells, I have to write a small script, run the script, review the output and repeat the process until I get the regex right. Just running the regex in the spreadsheet directly over the cells would be much faster.
 

Google Docs (0)

Anonymous Coward | about a year and a half ago | (#42899115)

Google Docs (spreadsheets) support "Google Apps Script"... which is pretty much just javascript with a few extra classes relating to Google Apps -type objects (spreadsheets, gmail, contacts, etc). Pretty good support for most JS, and there is a decent set of (user-contributed) libraries that can be used. Also, since it runs on servers (as opposed to on a client machine), you can do some spiffy stuff with sucking in data from external sources.

What is wrong with Excel and C#? (0)

Anonymous Coward | about a year and a half ago | (#42899133)

Excel? You can expand Excel with - C#. Since, IIRC, V 2007.

Statistical analysis = MINITAB (0)

Anonymous Coward | about a year and a half ago | (#42899143)

Doing data analysis with Excel is like building an office building with nothing but a battery-powered drill from Home Depot.

Re:Statistical analysis = MINITAB (1)

belmolis (702863) | about a year and a half ago | (#42899961)

True, except that the battery-powered drill from Home Depot doesn't have errors in its statistical functions.

From .NET (0)

Anonymous Coward | about a year and a half ago | (#42899147)

This article at codeproject gives simple utitlies for building SS using .NET languages (including C#, F# IronPyton and others).

http://www.codeproject.com/Articles/21475/TblProc-OpenOffice-Calc-and-Excel

libre office (0)

Anonymous Coward | about a year and a half ago | (#42899155)

I think OpenOffice/LibreOffice can be interfaced with a number of programming languages

python embedded in excel (5, Informative)

Anonymous Coward | about a year and a half ago | (#42899161)

https://datanitro.com/index.html

I've used it a bit and it's pretty fantastic

Version numbers... (2)

unts (754160) | about a year and a half ago | (#42899163)

Don't assume that a "low" version number means it's unusable. The project has commits going back to at least December 2009. Not all software is versioned with the assumption that 1.0 = finished.

Re:Version numbers... (5, Interesting)

Myopic (18616) | about a year and a half ago | (#42899375)

"Not all software is versioned with the assumption that 1.0 = finished."

This is the problem. This should be true: version 1.0 should be a statement by the author that the software has reached maturity for its initial, core feature set. Users should be able to rely on this. Version 0 should be when you write your first line of code; less than 1.0 should be initial implementation effort; 1.0 should mean first stable, complete public release; and full-number versions thereafter should indicate compatibility shifts or otherwise large functional jumps.

Let's get together on this, open source nerds. Give up on the fetish for teensy weensy version numbers. I know you think it's cool, but it's not, it makes obvious that you have no regard for the meaning of version numbers. (On the flip side, software like Chrome should stop using full-number increments for every single release. That also razes the meaning of version numbers.)

Re:Version numbers... (1)

NewWazoo (2508) | about a year and a half ago | (#42899901)

You're advocating encoding metadata in a unique identifier.

Don't do that.

Version numbers should have no inherent meaning. They are simply identifiers of a particular source code set. If you want to communicate ideas about maturity and stability, make it obvious and put it elsewhere.

Re:Version numbers... (3, Informative)

Jane Q. Public (1010737) | about a year and a half ago | (#42899903)

"Let's get together on this, open source nerds."

There is already something of an industry-wide standard for version numbers, and it fits with your definition pretty closely. It's just that many don't follow it. Including outfits like Mozilla, in recent years.

The standard calls for major and minor version numbers, followed (optionally) by a build or release number. E.g., 2.3.456.

Version 1.0 is supposed to be the initial, stable, core release, just as you say. But some groups (like Mozilla) insist on jumping the major version for relatively minor reasons, and others seem to get stuck at version 0.5 forever. But that's not because they can't agree on a standard. It's because they just don't follow it.

Re:Version numbers... (1)

medcalf (68293) | about a year and a half ago | (#42899939)

Oh, very debatable. Fundamentally, the purpose of a version number is to differentiate between different versions of the software, nothing more. If you want to use version numbers to track release date, why not use a version number plus a release date? If you want to use version numbers to differentiate between stable, development and experimental versions, why not use a version number plus a stability indicator? The basic idea is that it's not particularly useful to use one piece of metadata to encode other pieces of metadata. Just use multiple pieces of metadata.

matlab (1)

pswPhD (1528411) | about a year and a half ago | (#42899167)

I don't think this is quite what your after, and it is expensive as hell, but have you tried Matlab [mathworks.co.uk] ?

Re:matlab (1)

Anonymous Coward | about a year and a half ago | (#42899373)

A inexpensive alternative to matlab would be "R" in combination with R studio.

Depends (4, Informative)

jbolden (176878) | about a year and a half ago | (#42899181)

If you want a great spreadsheet: http://www.quantrix.com/ [quantrix.com]
If you want to beef up the programming language but are fine with Excel: http://www.wolfram.com/products/applications/excel_link/ [wolfram.com]

If you are talking non commercial: Siag (suggested above) is cool: http://siag.nu/index.shtml [siag.nu]
This hasn't seen much activity in a decade but Haxcel: http://www.johanmalmstrom.se/haxcel/ [johanmalmstrom.se] is Haskell in a spreadsheet.

Re:Depends (0)

Anonymous Coward | about a year and a half ago | (#42899609)

If you want a great spreadsheet: http://www.quantrix.com/ [quantrix.com]
If you want to beef up the programming language but are fine with Excel: http://www.wolfram.com/products/applications/excel_link/ [wolfram.com]

If you are talking non commercial: Siag (suggested above) is cool: http://siag.nu/index.shtml [siag.nu]
This hasn't seen much activity in a decade but Haxcel: http://www.johanmalmstrom.se/haxcel/ [johanmalmstrom.se] is Haskell in a spreadsheet.

The small business that I work for (that just finally, after years, saw decent growth in 2012) just switched to Quantrix, and let me tell you, that's an amazing piece of sotware. Not sure if it was OP's answer, but the what if scenarios are actually decent, not fluff, and another good feature was the fact that it wasnt =AVERAGE() or some other excel BS. (It almost replaced my job -- seriously, i'm not that important)

http://www.omegahat.org/RGnumeric/ (2)

NoPhD (963152) | about a year and a half ago | (#42899201)

R is very powerful try this" http://www.omegahat.org/RGnumeric/ [omegahat.org]

LibreOffice (0)

Anonymous Coward | about a year and a half ago | (#42899227)

Can't you use Python on it, also?

try octave (0)

Anonymous Coward | about a year and a half ago | (#42899229)

Octave is free and is design to do matrix stuff, as most of what you will do in a spreadsheet is handling rows or columns of matrixes, it could be worth a shot.

Definition (5, Insightful)

wideBlueSkies (618979) | about a year and a half ago | (#42899265)

What is the definition of a decent programming language?

It's a pretty ambiguous requirement.

C? Java? Python? Perl? Javascript?

Each is 'decent' in it's own way.

Another way to ask is this: What do you feel the shortcomings of the Excel VB language variant are?

A decent response ignored. (0)

Anonymous Coward | about a year and a half ago | (#42899971)

What do you feel the shortcomings of the Excel VB language variant are?

My answer: I'm on Linux and those are my parameters.

Unfortunately, Libre Office and Open Office both give me giberish when I load the CSV files I use - unlike Gnumeric. Gunumeric doesn't have a programming language, though.

MS Excel is the gold standard.

For the rest of you people, yeah, yeah, yeah, yeah, I'm a "Troll" for saying something you don't like.

And they wonder why I post as an AC.

Re:Definition (2, Interesting)

Anonymous Coward | about a year and a half ago | (#42900069)

A "decent" language is one which does not use any of the following keywords:

Then
Dim
Sub
End

What about Libre Office (0)

Anonymous Coward | about a year and a half ago | (#42899277)

With version 4 a lot of the macro's can written in Python. You maybe able to expose those macro's as function and us it that way.

http://www.libreoffice.org/

This is a plugin I was looking a while back that may help as well:

http://oosheet.hacklab.com.br/

Are you sure you want to use a spreadsheet? (1)

stewsters (1406737) | about a year and a half ago | (#42899281)

Do it with MySQL and a programming language of your choice and output to spreadsheet. Put your code in version control (git). Profit.
Or if you really need to be using Excel, try something like this: http://groovy.codehaus.org/COM+Scripting [codehaus.org]

Re:Are you sure you want to use a spreadsheet? (3, Interesting)

DragonWriter (970822) | about a year and a half ago | (#42899517)

Do it with MySQL and a programming language of your choice and output to spreadsheet.

I mostly agree, but MySQL is probably the wrong choice of database. For most things that you would consider using a spreadsheet for, you probably aren't concerned with multiple users with concurrent access, so you don't need a DB server, and SQLite is a much better choice. If you do need a DB server for some reason to back your spreadsheet-like analysis, PostgreSQL is probably a much better choice (if nothing else, because of the much richer query functionality; CTEs, particularly, are very useful for analysis.)

Python or Javascript in LibreOffice and OOo (5, Informative)

SgtChaireBourne (457691) | about a year and a half ago | (#42899287)

Both LibreOffice and OpenOffice.org support macros in Python [openoffice.org] or Javascript [webodf.org] . Chances are you already know one of those, so you don't even need to learn a new language.

Re:Python or Javascript in LibreOffice and OOo (1)

denisbergeron (197036) | about a year and a half ago | (#42899977)

Libre Office support Logo also!
That a pretty good programming language

Just use R (2, Informative)

Anonymous Coward | about a year and a half ago | (#42899303)

Spreadsheets are actually terrible tools for data analysis. It's virtually impossible to document what you did with a spreadsheet, and make it reproducible and debuggable.

What you want is R, the Free software language based on Bell Labs "S" programming language for doing statistics and data analysis. R is like the fully outfitted machine shop compared to a spreadsheet's screwdriver and a hammer in a plastic box.

http://www.r-project.org

Re:Just use R (2)

csirac (574795) | about a year and a half ago | (#42899637)

+1, although as a big ruby fan and using perl at work for nearly three years (and matlab at uni for four) I much prefer (and use) python+pandas instead.

Re:Just use R (1)

belmolis (702863) | about a year and a half ago | (#42900003)

Agreed. The only downside to using R for this purpose is that it doesn't give you the constant display of your data that a spreadsheet does. I mostly don't care, and in any case, if you have a lot of data, you can't see it much of it in any given view of spreadsheet anyhow, but some people really do want the spreadsheet display.

Wavemetrics Igor (0)

Anonymous Coward | about a year and a half ago | (#42899323)

It's been ten years since I used it though.

"Perl or even Javascript" (0)

Anonymous Coward | about a year and a half ago | (#42899333)

Strange definition of what would be "decent" for working with a fucking SPREADSHEET. Never once have I looked at a large Excel file and thought "you know what would make this a whole lot easier? If it were written in fucking Perl and Javascript."

I'm guessing you're one of those "BOFH" types that likes to self-flagellate as penance for being a prick to the people you work with?

stop using spreadsheets (0)

Anonymous Coward | about a year and a half ago | (#42899377)

Spreadsheets are simple, for simple problems. If you're doing anything complicated, learn how to use a database. Any good database is very extensible.

XLLoop (0)

Anonymous Coward | about a year and a half ago | (#42899389)

Use this thing and you can code macros and user defined functions for excel in any language you want:

http://xlloop.sourceforge.net/

What are you doing? (2)

Rob the Bold (788862) | about a year and a half ago | (#42899415)

What are you doing with a spreadsheet that you find the built-in functionality so limiting?

It's possible that perhaps you're getting to the "hairy edge" of what a spreadsheet is capable of. Depending on your application, perhaps you need a more specialized -- or more general purpose -- tool, here.

Others have suggested MATLAB. If not that, how about Mathematica?

Maybe you've outgrown the scope of a spreadsheet and need a general purpose programming language, perhaps one that you can get a reporting package that suits your requirements. If you're using lots of VBA, why not go all out and use VB, or any other general purpose solution (C, Java, Python, etc., etc., etc.)?

Are you doing signal processing or control or other engineering stuff? Perhaps DaDiSP.

Some more info on your particular needs might get a more specific and useful answer from someone here that's done the same thing.

Re:What are you doing? (3, Interesting)

Obfuscant (592200) | about a year and a half ago | (#42899677)

What are you doing with a spreadsheet that you find the built-in functionality so limiting?

When the only tool you have is a hammer, every screw looks like a nail. When the only tool you know how to use is a hammer, it is the screw's fault that it won't go in like a nail when you hit it.

I remember many many years ago, the entire corporate sales database where I worked was kept in a text editor. When I pointed out that there was something called "ingres" and that maybe it would be better to keep the data in that, I was told that the person who managed the "database" knew how to use the text editor and didn't want to learn anything else. I was also told that I wasn't hired to write database code for the administration of the company, I was hired to write scientific data processing code.

Part of the problem was that DEC supplied the text editor with the system. That made it the tool of choice, even for problems it was very poor at handling. Likewise, if "large computer company" provides few or no real programming tools other than extensions to a spreadsheet, then the spreadsheet becomes the programming tool of choice. I've had several recent projects that I've had to code in javascript/HTML simply because I couldn't expect them to be used if they were programmed in perl, because web browsers come with the system and perl does not.

Re:What are you doing? (1)

Rob the Bold (788862) | about a year and a half ago | (#42899747)

What are you doing with a spreadsheet that you find the built-in functionality so limiting?

When the only tool you have is a hammer, every screw looks like a nail. When the only tool you know how to use is a hammer, it is the screw's fault that it won't go in like a nail when you hit it.

He didn't say he was an orthopedic surgeon. That does change things . . .

Dumbshit (0)

Anonymous Coward | about a year and a half ago | (#42899431)

You can use any .Net supported language in excel, from IronPython to C# to Managed C++

hahahaha (-1)

Anonymous Coward | about a year and a half ago | (#42899445)

"Spreadsheets are very flexible tools for data analysis and transformations"

hahahaha. spreadsheets are only good for HR and PHBs to make them feel as though they have actually done something.

the rest of the working world uses other tools to actually get shit done.

Re:hahahaha (1)

SerpentMage (13390) | about a year and a half ago | (#42899885)

No spreadsheets are great because of shits like you who mock and laugh in people's faces when they only want to do some simple calculation tomorrow and you decide that it would be better for them to use a custom written library with awesome GUI interface. The problem with you is that they want to get done tomorrow not wait three months for you to get your shit in gear!

Seriously, I am a programmer, but I totally get why people use Excel. Programmers and devs have this problem in that they cant do something quickly because it needs to be abstracted, modularized, etc, etc...

Perl with Excel (0)

Anonymous Coward | about a year and a half ago | (#42899447)

You can use Perl to control Excel with OLE objects.

Python in a Workbook? (1)

Anonymous Coward | about a year and a half ago | (#42899451)

http://www.resolversystems.com/products/resolver-one/

Use a decent relational database (1)

davidbrit2 (775091) | about a year and a half ago | (#42899455)

I find that a decent SQL database platform is better for complex data manipulation. Install SQL Server 2012 Express Edition With Advanced Services (it's a mouthful, but it's free). It supports import/export from Excel spreadsheets, and a number of other data formats, and also includes Reporting Services for creating nice presentable reports without coupling the layout with your data storage (as with a spreadsheet).

Some SQL knowledge can take you a lot further than Excel will on its own.

look at geogebra (1)

museumpeace (735109) | about a year and a half ago | (#42899491)

it might not meet your needs because its spread sheet function came as an afterthought/alternative to an interactive geometric algebra tool. It has great power for some visualizations but not much for general data sets. IT is all open source and all in Java.
the link: http://www.geogebra.org/cms/ [geogebra.org]

Stop. Stop right now. (3, Insightful)

viperidaenz (2515578) | about a year and a half ago | (#42899507)

Stop programming in your fucking spread sheet. It's not an application development system.

If you start having more code than you have data in there, you're doing it wrong.

On the other hand, I got paid a pretty penny to turn a spread sheet system into a real application not so long ago,

Re:Stop. Stop right now. (4, Insightful)

MouseR (3264) | about a year and a half ago | (#42899811)

Turning a spreadsheet into an application is not programming. It's being an accountant.

Use Excel + .NET or even HTML5/JS (0)

Anonymous Coward | about a year and a half ago | (#42899545)

You don't have to use VBA to program Excel -- .NET has been an option for many years. You used to use Visual Studio Tools for Office (VSTO), but now the features of VSTO are baked into Visual Studio. Dev info here: http://msdn.microsoft.com/en-us/Office2010DeveloperTrainingCourse. And with Office 2013, you can adopt a HTML5/JS programming model. Get started here: http://msdn.microsoft.com/library/office/apps/jj220060(v=office.15). All info on Office development is rooted here: http://msdn.microsoft.com/en-us/office/aa905340.aspx.

Java + Apache's HSSF? (1)

wcrowe (94389) | about a year and a half ago | (#42899561)

Don't know if it would work for what you're wanting. Just throwing it out there.

Google Refine (now Open Refine) has python (1)

csirac (574795) | about a year and a half ago | (#42899577)

But it's not quite a spreadsheet application.. I found it quite powerful last I tried it ~18 months ago, but I had trouble fitting the entire dataset in memory openrefine.org [openrefine.org]

Project Dirigible (0)

Anonymous Coward | about a year and a half ago | (#42899639)

http://www.projectdirigible.com/ - If you don't mind cloud storage.

Amiga Spreadsheets (0)

Anonymous Coward | about a year and a half ago | (#42899731)

Pretty much any Amiga oriented spreadsheet allows one to use AREXX

resolver one (1)

Anonymous Coward | about a year and a half ago | (#42899743)

http://www.resolversystems.com/products/resolver-one -- spreadsheet python

Org Mode Table Editor (0)

Anonymous Coward | about a year and a half ago | (#42899765)

All the power of Emacs Lisp at your fingertips!

SciLab (1)

flyingfsck (986395) | about a year and a half ago | (#42899797)

It is free and it works better than Matlab.

Without knowing what you're actually doing... (1)

Blakey Rat (99501) | about a year and a half ago | (#42899813)

Without knowing what you're actually doing it's kind of hard to make any recommendation.

Where I work, we find Tableau [tableausoftware.com] to be a good middle-ground between Excel and full SQL environments. It's not really a spreadsheet perse though.

APL (1)

TobiX (565623) | about a year and a half ago | (#42899841)

Consider learning an "executable mathematical notation" such as APL.

It has the advantage of looking like math formulas, naming entire matrices with a single letter and using symbols for the operations, while avoiding the pitfalls and chores of traditional programming languages, such as explicit loops.

APL was designed to allow non-programmers to express complex computations with ease, in a non-ambiguous, reproducible, executable way.

There are excellent commercial implementations (with trial or free-for-personal-use versions) such as AplX and Dyalog. They both have good tutorials. There is even a Try APL online site http://www.tryapl.org/ [tryapl.org]

SPSS (1)

globaljustin (574257) | about a year and a half ago | (#42900049)

Of course 'it depends on the job', but I'd suggest having a look at SPSS, if you have access or are rich. Every college and university uses it.

en.wikipedia.org/wiki/SPSS

It has a code view for your queries (i am weird and only use SQL) and even some online 'libraries' of often used search strings (consult google). There used to be a FOSS alternative, PSPP, but I never used it.

I'd like to hear any feedback on my suggestion. The type of data analysis I did was either large data pulls based and de-duping on a few factors across 800K contact dbases in Oracle, Access, Excel, etc. or it was SPSS for doing geospatial, survey response, and anthropolgy factor analysis. We tested WiMax router signal penetration and correlated it with observational and respondent based computer usage data. SPSS handled the mix of data well.

Looking at other responses it appears that many are sort of dancing on the line between hard coding and dbase querying with their set ups...I'm not a coding wizard but I can at least get the concept. Never used most of the programs others have mentioned.

Try This (1, Informative)

Quinn Vinlove (2841469) | about a year and a half ago | (#42900053)

Try R, i think that it is a math programming language.

LAMP (1)

snadrus (930168) | about a year and a half ago | (#42900065)

Be a programmer, not a Sheet enthusiast. I needed UI but simpler processing, so the ~LAMP stack worked for me (Linux, Cherokee, MariaDB, Python) . Python fits everywhere here from heavy data analysis to being web front-end. Often a one-line SQL statement did more than I needed.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?