Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 03:03   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию Импорт данных их Excel в Delphi

всем привет,нашел ссылку на этом форуме на хорошую книгу 'Программирвоание документов и приложений ms office в delphi' и по ней учусь,но проблемы все равно возникли,перейду к делу: пишу прогу которая будет импортировать данные из Excel в мою прогу в stringgrid.
Код:
var
  Form1: TForm1;
  var e,sheet:variant;
  a:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  e:=createoleobject('excel.application');
  if opendialog1.Execute then
  e.workbooks.open(opendialog1.FileName);
  e.visible:=true;
end;

procedure TForm1.ImportButtonClick(Sender: TObject);
var eee:string;
begin
for a:=1 to 10  do
 begin
   eee:=e.sheet.cells[a,1];
   stringgrid1.Cells[a,1]:=eee;
 end;

end;
прога запускается и excel тоже открывается,но когда я нажимаю кнопку Import то вылезает ошибка 'method sheet not supported by automation object' вобщем подскажите что да как,я с этим не работал,обещаю поставить плюсик кто поможет))
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 17.01.2010 в 03:53.
betirsolt вне форума Ответить с цитированием
Старый 17.01.2010, 13:01   #2
verlen
Новичок
Джуниор
 
Регистрация: 17.01.2010
Сообщений: 2
По умолчанию попробуй так...

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
xlcelltypelastcell = $0000000b;
var
e, sheet: olevariant;
rangematrix: variant;
x, y, k, r: integer;
begin
result := false;
e := createoleobject('excel.application');
if opendialog1.Execute then
e.workbooks.open(opendialog1.FileName);
try
e.workbooks.open(opendialog1.FileName);
e.visible := true;
sheet:=e.workbooks[extractfilename(opendialog1.FileName)].worksheets[1];
e.cells.specialcells(xlcelltypelastcell,emptyparam).activate;
x := e.activecell.row;
y := e.activecell.column;
stringgrid1.rowcount:=x;
stringgrid1.colcount:=y;
rangematrix := e.range['a1', e.cells.item[x, y]].value;
k := 1;
repeat
for r := 1 to y do
stringgrid1.cells[(r - 1), (k - 1)] := rangematrix[k, r];
inc(k, 1);
stringgrid1.rowcount := k + 1;
until k > x;
rangematrix := unassigned;
finally
if not varisempty(e) then
begin
e.quit;
e := unassigned;
sheet := unassigned;
result := true;
end;
end;
end;
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Вы не знали? Почитайте правила раздела...
Модератор

Последний раз редактировалось mihali4; 17.01.2010 в 13:04.
verlen вне форума Ответить с цитированием
Старый 17.01.2010, 14:25   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Зачем мне эта билибирда?по моему
Код:
procedure TForm1.ImportButtonClick(Sender: TObject);
var eee:string;
begin
for a:=1 to 10  do
 begin
   eee:=e.sheet.cells[a,1];
   stringgrid1.Cells[a,1]:=eee;
 end;
этот код лучше и легче просто тут какая то маленькая ошибка,может кто нибудь поможет исправить именно этот код?просто мне там понятнее
вот так получилось
Код:
procedure TForm1.Button3Click(Sender: TObject);
var eee:string;a:integer;
begin
for a:=1 to 20001  do
 begin
   eee:=e.workbooks[1].worksheets[1].cells[a,1];
   stringgrid1.Cells[1,a]:=eee;
 end;
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось betirsolt; 17.01.2010 в 15:55.
betirsolt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Borland C++ Builder - импорт из Excel в StringGrid nuser C++ Builder 3 10.01.2015 12:38
Импорт данных из Word в Excel макросом vv66 Microsoft Office Excel 17 27.01.2012 14:49
Импорт данных в Excel mMAg Microsoft Office Excel 2 20.08.2009 17:50
Импорт из Excel в Access AD_min БД в Delphi 0 28.10.2008 09:29