EXCEL & DELPHI

I have an application written in Delphi.
From this Delphi program, I need to execute Excel (previously configured), to fill some cells in a choosen sheet, launch a macro linked to the choosen sheet, and re-read the computed values from some choosen cells.
Maybe I've to use TOleObject or OLE method itself, but I don't know how to and need a focused related example.

Regards

poli_amf@computech.it
strakerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

pscaddenCommented:
For starters get the TExcel component from the Delphi
super page. (http://dsp.static.co.kr/index.html is the mirror that I use) It talks to Excel via DDE. It isnt perfect, but its a good
start.
0
strakerAuthor Commented:
I started talking about OLE and ToleObject such in word.basic example.
That is ... I need an example that shows me how to use the feature of the ole to open a choose .xls to find a choosen sheet, to launch a macro and to read and to get values back and forth a range of cells...but via OLE such all the examples that everybody could find in litterature and concerning ... createOleObject('word.basic')  ........ ('Excel.Application').

Regards
0
mheacockCommented:
I don't thin this is a 50 pt question.  You are looking for
quite a lot of advanced OLE here.
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

strakerAuthor Commented:
I believe it's not so advanced.
The Word example is very simple. (If I try to register the Macro in Word a can move it quite step by step in the Delphi program and it can be found in every serious Delphi Book) [ Teixeira docet].
In Excel this translation seems not to work. I asked only the four instructions to pilot the reach of a choosen WorkBook, a choosen WorkSheet, to exec a Macro in the WorkSheet and to read and write some Cells. It seems to me not an HARD OLE question.
I Can Add 50 points but it seems a waste of resource.

Regards
0
sperlingCommented:
English is my second language, and I 'm not sure I understand you...


You need e.g. a short procedure, which tells you what OLE objects you should create, and what methods you should call, to

1) Open a given XLS
2) Execute a predefined macro
3) Write to cells
4) Read from cells.

You know how to create the objects, you just need object names and methods.

Right??

Erik.
0
strakerAuthor Commented:
'cause English is not my second language I'll try to explane my problem in short...
I've just executed the Excel.exe and performed  the createOleObject('Excel.Application'). Now I'd like obtain  ( via OLE ) the following operation:
1- Given a workbook name, to open it.
2- Given a worksheet name, to select it.
3- Given a Row and a Column, to write to it.
4- Given a macro name in the current worksheet, to execute it.
5- Given a Row and a Column, to read from it.

That's all.

Regards.



0
sperlingCommented:
This is a 50p question... Just a matter of looking up the right Excel functions... I've got some code doing approximately this, I'll try to locate it and then give an answer...

Erik.
0
sperlingCommented:
Excel := CreateOLEObject('Excel.Application');

Excel.Workbooks.Open('C:\WS1.XLS');
Excel.ActiveWorkbook.Worksheets('WorkSheet1').Activate;
s := Excel.ActiveWorksheet.Cells(ARow, ACol);
Excel.ActiveWorksheet.Cells(ARow, ACol) := s;
Excel.Run('MACRO.XLM!MacroName', 1, 2);

As I ain't got the US version of Excel, the actual method names might not be accurate. According to the docs (which ofcourse documents the US version, not the localized version, sigh...) this ought to work. If not, leave me a comment, and I'll check it out.

Erik.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.