Solved

How to access an excel spreadsheet through Delphi 5

Posted on 2011-09-28
7
755 Views
Last Modified: 2012-05-12
My problem seems to be simple.  I need to open up an odbc driver linked to an excel spreadsheet in Delphi and then read some data from it.  Seems simple, but I can't seem to find the best way.  

First of all I set up a odbc datasource for the spreadsheet.

I then setup a tdatabase component and connected it without a hitch.  I then drop a ttable on the form and reference the tdatabase but when I try to select the tablename the system crashes.  

Using ADO I dropped a tadoconnection on the form, setup the connection string, tested the connection and set the connected to true, no problems.  I then drop a tadotable and referrence the tadoconnection.  There is nothing in the drop down for tablename and when I try to set active = true, it tells me the tablename is missing.

Help!
0
Comment
Question by:Randy Rich
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 36720470
It's a little bit long to explain how to connect to excel using ado
Here's a tutorial to start in this way http://delphi.about.com/od/database/l/aa090903a.htm
0
 
LVL 19

Expert Comment

by:Thommy
ID: 36813047
Have you already checked this...

Connecting an Excel Spreadsheet to Delphi using ADO
http://www.glockwood.co.uk/ComputingResources/Howtos/exceltodelphi.pdf
0
 
LVL 19

Expert Comment

by:Thommy
ID: 36813056
Another useful link...

Creating a Microsoft Excel Spreadsheet Viewer Using Delphi 5's ADOExpress
http://edn.embarcadero.com/article/20066
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 25

Expert Comment

by:epasquier
ID: 36813246
you may have to setup in excel a region of your spreadsheet that will be the table. that is useful when you have complex speadsheet and want only a specific area of it to be accessible as a table.
I think that is done by selecting the region (with the first line being the column headers), and setting a name to that region. In ribbons GUI, it is in the 'Formula' ribbon, 'Name Manager' section, then 'Define a name'
I know Excel should allow access to each spreadsheet as a whole table, without setting an area name. But maybe there is now security functionality that prevent it to work.
I'll try to test it with an environment as close as possible as yours : what is your Delphi version and what is your Office version ?
0
 
LVL 25

Accepted Solution

by:
epasquier earned 500 total points
ID: 36813843
Here is a full sample project, with comments inside the app and the excel file.
Accessing Excel from ADO, while convenient with simple needs, is definitely NO DB alternative, when adding data and joints are required ADOExcel.zip
0
 

Author Comment

by:Randy Rich
ID: 36814046
I'm using Delphi 5 and Excel 2010.
0
 

Author Closing Comment

by:Randy Rich
ID: 36814339
Wish I could give an A++++.  This was a great solution and the example made it easy to work through!  I know it's not always possible to go to this length to explain something but in this case with all the many variables, it was a tremendous help. Thank you!!!!
0

Featured Post

Enroll in June's Course of the Month

June’s Course of the Month is now available! Experts Exchange’s Premium Members, Team Accounts, and Qualified Experts have access to a complimentary course each month as part of their membership—an extra way to sharpen your skills and increase training.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…

687 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question