Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.03.2012, 00:59
sidoro89 sidoro89 вне форума
Прохожий
 
Регистрация: 06.01.2012
Сообщения: 7
Репутация: 10
По умолчанию Проблемы с передачей данных из Excel

Всем доброго времени суток. Сижу пишу программку. Для удобства работы с большими объемами данных задумал хранить все в Экселе. Сохранить получилось, с горем пополам, а вот с загрузкой данных какие-то непонятки. Пишет "член группы не найден" Хотя такой же модуль работает в другой программе, отличий не нашел, возможно что заметите, поможете. Заранее спасибо. Программа весит больше 300кб, поэтому разместил на депозите и на народе, если что могу на мыло кинуть.
http://depositfiles.com/files/79xzbucoj

http://narod.ru/disk/44406507001.57c...D0%95.zip.html

Принцип работы прост - Файл - Загрузить результаты расчета. Файл с данными - 123.xls

Заранее спасибо.
Ответить с цитированием
  #2  
Старый 26.03.2012, 01:22
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Больше 1Мб, это конечно почти 300Кб. Ещё бы кто научил архивы создавать, чтобы не пихать туда весь хлам из каталога. Нужной информации набралось всего на 200Кб архива.

Нет, господин хороший, рыться в файлах, где все переменные безымянные и сам код представляет кучу мусора (не отформатирован) желания нет.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 26.03.2012 в 01:26.
Ответить с цитированием
Этот пользователь сказал Спасибо angvelem за это полезное сообщение:
sidoro89 (26.03.2012)
  #3  
Старый 26.03.2012, 11:19
sidoro89 sidoro89 вне форума
Прохожий
 
Регистрация: 06.01.2012
Сообщения: 7
Репутация: 10
Хорошо Спасибо.

С хламом и сформированным архивом полностью согласен, копия не к месту забралась туда. (спасибо, на будующее учтено).
Рыться в файлах не стоит файл там один - MKE.dpr, Unit1.pas, строка 1944
Код:
procedure TMain.N9Click(Sender: TObject);
Вся часть работы с экселем 1944-1956

Выкладываю процедуру, которая за все отвечает. На первом вводе данных все останавливается.

Код:
...
var Excel: Variant;
...
procedure TMain.N9Click(Sender: TObject);
var address:string;

begin
  dlgOpen1.Title := 'Загрузить результаты расчета';
  dlgOpen1.InitialDir := GetCurrentDir;
  dlgOpen1.Filter := 'XLS file|*.xls';
  dlgOpen1.DefaultExt := 'xls';
  dlgOpen1.FilterIndex := 1;
  if dlgOpen1.Execute then
  begin
  address:=dlgOpen1.FileName;
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open[address];

//Импорт данных

  N_U:=Round(Excel.cells(2,20));
  N_ELEMENT:=Round(Excel.cells(2,21));
  for i:=1 to N_U do
  begin
    S_UZL[i].X:=StrToFloat(Excel.cells(1+i,2));
    S_UZL[i].y:=StrToFloat(Excel.cells(1+i,3));
    S_UZL[i].u:=StrToFloat(Excel.cells(1+i,4));
    S_UZL[i].V:=StrToFloat(Excel.cells(1+i,5));
    S_UZL[i].Sx:=StrToFloat(Excel.cells(1+i,6));
    S_UZL[i].Sy:=StrToFloat(Excel.cells(1+i,7));
    S_UZL[i].Sxy:=StrToFloat(Excel.cells(1+i,8));
    S_UZL[i].S1:=StrToFloat(Excel.cells(1+i,9));
    S_UZL[i].S2:=StrToFloat(Excel.cells(1+i,10));
    S_UZL[i].k:=StrToFloat(Excel.cells(1+i,11));
  end;

  for i:=1 to N_ELEMENT do
  begin
    S_ELEM[i].Sx:=StrToFloat(Excel.cells(1+i,13));
    S_ELEM[i].Sy:=StrToFloat(Excel.cells(1+i,14));
    S_ELEM[i].Sxy:=StrToFloat(Excel.cells(1+i,15));
    S_ELEM[i].S1:=StrToFloat(Excel.cells(1+i,16));
    S_ELEM[i].S2:=StrToFloat(Excel.cells(1+i,17));
    S_ELEM[i].k:=StrToFloat(Excel.cells(1+i,18));
    S_ELEM[i].S:=StrToFloat(Excel.cells(1+i,19));
  end;
  Excel.Application.Quit;
  end;
end;

Проблема решена, самому не ловко. Тему можно закрывать. Ячейки задавались круглыми скобками. С квадратными все начало работать. Всем спасибо.
Одного понять не могу: сохраняются данные в эксель обращась к ячейкам через круглые скобки и проблем нет, а при вводе данных появляются трудности.

Последний раз редактировалось sidoro89, 26.03.2012 в 11:41. Причина: Обнаружена неточность в ответе.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:41.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025