views:

193

answers:

3

The company I work for has a Window application that includes integrated word processing and spreadsheet components. We use TextControl and FarPoint for the implementation. We have been developing an OS X counterpart for this application. The word processing functionality is actually pretty easy--the standard multi-line text view makes a very credible word processor. However the spreadsheet is a rather significant challenge. While there are open-source spreadsheet projects (gnumeric, kspread, OpenOffice, etc.) none of them use the native Cocoa look-and-feel, nor do they expose the spreadsheet as a component that can be embedded into an NSView.

So here's my question: Does anyone know of a spreadsheet component for OS X? It doesn't matter if it's OSS or closed-source, as long as it works. We need all of the basic functionality of Excel except for macros. Graphing would be nice, but not mandatory. Something similar to the solver would also be beneficial.

A: 

Take a look at NSTableView.

Alex Reynolds
I had thought of that, but there's no calculation engine behind the NSTableView. We need to be able to load and save an XLS file and compute all of the formulas.
Paul
That's a pretty big request. If someone had that, they would probably release their own spreadsheet app to compete with Office.
Alex Reynolds
In the Microsoft realm, there are several spreadsheet components that can be dropped into an application to provide Excel-like functionality. That is all that I'm looking for.
Paul
+1  A: 

A while ago I tried to get an NSTableView to behave like a spreadsheet in terms of user interaction. Matt Ball (whose website is currently down) has an open source spreadsheet control called MBTableGrid. The last time I looked at it, it offered very Cocoa-like implementation of a spreadsheet control.

dreamlax
Matt's table grid implementation looks promising. Does he have a compute engine behind it as well? Or is it simply a means of viewing data in something that resembles a spreadsheet?
Paul
@Paul: It's more of the latter; I don't think there's any engine in there.
dreamlax
I guess the next logical question would be: Has anyone written a spreadsheet computational engine without a UI?
Paul
A: 

For the UI, you should look at NSMatrix which is basically a class for displaying information in grids.

As for the computation, Since you can easily combine any standard C or C++ with Objective-C, I would look for a generic C, C++ library. One of the open source projects must provide such code. Tying that into a NSMatrix would be relatively trivial.

Still, I don't think your going to find a free or cheap drag and drop full feature spreadsheet. If someone wrote that, they might as well just release the spreadsheet themselves.

TechZen
In the Microsoft realm, there are several spreadsheet components that can be dropped into an application to provide Excel-like functionality. That is all that I'm looking for.
Paul
Yes, that's because Microsoft has embedded the Excel framework into the Windows OS. You can access Excel functionality from any app just like you can access Internet explorer functionality. They haven't done that for other operating systems. They have no incentive to do so because trapping people in the MS ecosystem is their core business strategy. To my knowledge, no one else has gone through the trouble to reproduce a standalone Excel module since it pretty much requires writing a spreadsheet from scratch.
TechZen
Wow, you are seriously misinformed... Microsoft most certainly has NOT embedded Excel into Windows. It is a separate product. If you have Excel installed on your computer, it is possible to access it from your own application through a COM interface. SpreadsheetGear and FarPoint (among others) have pure .NET spreadsheet components that have no dependency on Excel whatsoever. We have worked with both.
Paul
Okay, I'll defer to your superior expertise in that area. I haven't done anything serious in Windows in over a decade. I do know that back in the 90s they did make such functionality generally available but maybe they lost that in the antitrust lawsuit.
TechZen
If have existing .Net functionality you like, perhaps you should consider developing in Mono. Not sure how it would look and behave UI wise but it would slim down development.
TechZen