3

I am given a huge excel file with a great deal of data and formulas and I need to access the functionality implemented therein to create a web service running on MacOSX. I tried at first to use POI to access its functionality from Java but unfortunately POI does not support some functions like MINVERSE, TRANSPOSE, MMULT and others and I found it particularly difficult to implement them (also see this question).

Is there a programmatic way to access the excel sheet? I found RCOMClient for R but it seems it works onl on Windows. Perl, Python, R, Octave, C++, Java or anything if fine provided that it provided full functionality over Excel formulas.

Python Excel: Why Python Excel in NOT an option for my problem. In the tutorial it is written that:

A relative reference is useful only if you have external knowledge of what cells can be used as the origin. Many formulas found in Excel files include function calls and multiple references and are not useful, and can be too hard to evaluate. A full calculation engine is not included in xlrd.

Unfortunately I need a very good support of the Excel engine.

Community
  • 1
  • 1
Pantelis Sopasakis
  • 1,902
  • 5
  • 26
  • 45
  • http://stackoverflow.com/questions/4226754/editting-excel-sheets-with-python This may be useful. – Andrew Apr 25 '12 at 16:53
  • @Andrew One peppy clarification: I don't want to read and write to an Excel file - I need something more. I need to use it as a method/routine: to use the functions defined in the spreadsheet, feed them with input and take the output as it is calculated using Excel methods (i.e. SQRT, MINVERSE, etc) and (possibly) VBA. – Pantelis Sopasakis Apr 25 '12 at 18:21

1 Answers1

2

Sure you can.

Have you checked the wonderful Python Excel project ?

Even better : you could take a look at that stupendous blog post.

Have fun and keep us posted if you need more help.

  • Don't bother accessing Excel from another language than Python, as Python is where you'll waste the lower amount of time.
Skippy Fastol
  • 1,745
  • 2
  • 17
  • 32