Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с загрузкой из Екселя [D7, XP]


alexsashkan ©   (2008-02-08 12:38:00) 

Уважаемые!!! Возникла вот такая проблемка делаю загрузку из Екселя
Я считываю по столбцово данные ...
//-------------------------------------------------
var
Excel: variant;
 i, j: word;
    S,city1,city2: string;
    distanse:Real;
begin
    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open('C:\4.xls');
    Excel.Visible:=True;
//     for i := 1 to 5 do
      for j := 2 to 10 do
       begin
         city1 := Excel.Sheets[1].Cells[1,j].Text;
         city2:='Какое-то значение';
         distanse:=Excel.Sheets[1].Cells[2,j].Text;
 //делаем коннект и заиписываем значения вводимые юзером
{
ADOCommand1.CommandText:=('Insert Sad_price VALUES (:city1,:city2,:distanse)');
ADOCommand1.Parameters.ParamByName('city1').Value:=city1;
ADOCommand1.Parameters.ParamByName('city2').Value:=city2;
ADOCommand1.Parameters.ParamByName('distanse').Value:=distanse;
ADOCommand1.Execute;
}
end;
end;
//-------------------------
получаю ошибку "cpuld not convert variant of type (OleStr) inti type (double)".Я так понимаю я что-то с типами ошибся...или где-то в другом месте...те значения которые не получаеться считать следующее - "1,1"; "0,75";"0,50"   Подскажите как можна решить эту проблемку...


ketmar   (2008-02-08 13:34:00) [1]

>[11] alexsashkan (2008-02-08 13:27:00)
у тебя кривые региональные стандарты. почини и не пудри нам моск.

---
Understanding is not required. Only obedience.


Сергей М.   (2008-02-08 13:33:00) [2]

Ну раз так, то на момент запуска твоей программы в кач-ве разделителя в рег.настройках фигурирует что угодно, только не точка.
Проверяй еще раз.


alexsashkan   (2008-02-08 13:27:00) [3]


> distanse := StrToFloat(Excel.Sheets[1].Cells[2,j].Value);

"0.70" is not a valid floating point value.  - ВОт такое говорит


Сергей М.   (2008-02-08 13:24:00) [4]

А так

distanse := StrToFloat(Excel.Sheets[1].Cells[2,j].Value);

что говорит ?


alexsashkan   (2008-02-08 13:19:00) [5]

вот данные которые в Екселе "0.55","0.35","0.24" - без запятых,с изменёнными региональные стандартами,ситуация не изменна!! та же ошибка что и в начале


ketmar   (2008-02-08 13:15:00) [6]

да? ёксель по-прежнему отдаёт запятую?

---
Understanding is not required. Only obedience.


alexsashkan   (2008-02-08 13:11:00) [7]

Региональные стандарты менял - не помогло!


ketmar   (2008-02-08 13:00:00) [8]

>[4] alexsashkan (2008-02-08 12:58:00)
ты это, читать не будешь? [1]. до просветления и осознания.

---
Understanding is not required. Only obedience.


ketmar   (2008-02-08 12:59:00) [9]

>[3] alexsashkan (2008-02-08 12:52:00)
>Поубирал запятые,заменил на точку…НИФЕГА!! та же самая ошибка…
интересно, как ты эот делал…

---
Understanding is not required. Only obedience.


alexsashkan   (2008-02-08 12:58:00) [10]

просто если в таблице Екселя целые числа,типа "123" или "266" или "744",то всё рабоатет нормально..а вот с не целыми...нет!!


alexsashkan   (2008-02-08 12:52:00) [11]


> а если distanse:=Excel.Sheets[1].Cells[2,j].Text;заменить
> на это distanse:=Excel.Sheets[1].Cells[2,j].Value;

Заменил,то же самое!!!

> запятая в числах не нравится. не ставить запятую.

Поубирал запятые,заменил на точку...НИФЕГА!! та же самая ошибка...


Slym   (2008-02-08 12:47:00) [12]

а если distanse:=Excel.Sheets[1].Cells[2,j].Text;
заменить на это distanse:=Excel.Sheets[1].Cells[2,j]. Value;


ketmar   (2008-02-08 12:46:00) [13]

региональные настройки и ты пы. старый баян. запятая в числах не нравится. не ставить запятую.

---
Understanding is not required. Only obedience.


Наверх

Титульная страница Поиск, карта сайта Написать письмо