Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];

Вниз

Конвертация из Excel   Найти похожие ветки 

 
Patrick1968 ©   (2011-06-15 16:43) [0]

Пытаюсь забрать данные из Excel формат ячейки ч:мм:сс командой
TmpString1 := MsExcel.Range["F1"]; а получается в числовом формате, а как получить нормальное представление вида 20:35:00 к примеру, может кто сталкивался с подобной проблемой.


 
Sergey   (2011-06-15 16:45) [1]

AsString?


 
Patrick1968 ©   (2011-06-15 16:47) [2]

tmpstring1 : string
может tmpstring1 : TDateTime поможет


 
Anatoly Podgoretsky ©   (2011-06-15 16:52) [3]

> Patrick1968  (15.06.2011 16:43:00)  [0]

Надо не TmpString1, а TmpTime1


 
Patrick1968 ©   (2011-06-15 17:04) [4]

Опробовал следующий вариант

TmpDateTime := MsExcel.Range["E1"];
Frm.ShortTimeFormat := "h:nn:ss";
a := DateTimeToStr(TmpDateTime, Frm);
в итоге переменная a="" а ячейка 0:01:00


 
Dennis I. Komarov ©   (2011-06-15 17:16) [5]

Нужен бубен...


 
Patrick1968 ©   (2011-06-15 17:30) [6]

типа перебор форматов


 
sniknik ©   (2011-06-15 18:01) [7]

> а получается в числовом формате, а как получить нормальное представление вида 20:35:00 к примеру, может кто сталкивался с подобной проблемой.
дата это число, время это число, "нормальное представление" это строковое представление даты/времени для ЮЗЕРА, не для КОМПЬЮТЕРА/программиста.
проблемы нет. сталкиваться не с чем.

> Нужен бубен...
нужен программист. хотя бы начинающий, а не шаман.


 
Patrick1968 ©   (2011-06-15 18:14) [8]

да, согласен, надо было LongTimeFormat брать, но ведь всё равно не работает, а "умничать" все горазды, весь этот ликбез про время дата число я уже давно проходил, дело тут не в этом


 
Patrick1968 ©   (2011-06-15 18:16) [9]

Просто до этого с Excel ем в делфи не работал, посему и затык


 
Sergey   (2011-06-16 08:31) [10]

Набросал за 2 минуты.

unit temp;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComObj;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  WorkBook,Sheet,Excel:variant;
begin
  excel := GetActiveOleObject( "Excel.Application");
  WorkBook := Excel.WorkBooks[1];
  Sheet := WorkBook.WorkSheets[1];
  label1.Caption:=Sheet.cells[1,2].value;
end;

end.

Все отлично работает и выдает именно то значение что в ячейке. В чем проблема то?


 
sniknik ©   (2011-06-16 09:52) [11]

> и выдает именно то значение что в ячейке. В чем проблема то?
ты не поставил в ячейке тип "время" и вводишь строку, и передаешь строку.


 
Sergey   (2011-06-16 10:08) [12]

Формат ячейки - Время. Все ок.


 
sniknik ©   (2011-06-16 10:42) [13]

> Формат ячейки - Время. Все ок.
D7, XP, Excel 2003 ?

у меня твой код и "его время" (20:35:00) дает 0,857638888888889 (что правильно по типу). у тебя кто то конвертит "под понятия ламера"? (пошли на поводу...)


 
sniknik ©   (2011-06-16 10:53) [14]

кстати если ввести в ячейку с типом времени строку... (эксель позволяет) т.е. например поставить " перед временем ("20:35:00) тогда и в ячейке это будет строкой (выравнивает строку по левому краю ячейки, а не правому), и передаст строкой.


 
Sergey   (2011-06-16 11:43) [15]

> [13] sniknik ©   (16.06.11 10:42)
> > Формат ячейки - Время. Все ок.
> D7, XP, Excel 2003 ?
>
> у меня твой код и "его время" (20:35:00) дает 0,857638888888889
> (что правильно по типу). у тебя кто то конвертит "под понятия
> ламера"? (пошли на поводу...)


... Вы правы. Только что перепроверил. Сделал формат Время ввел время и получил в ответ число.


 
Sergey   (2011-06-16 11:45) [16]

label1.Caption:=TimeToStr(Sheet.cells[1,2].value);

Возвращает то что нужно.


 
Sergey   (2011-06-16 12:09) [17]

D6, XP, Excel 2003


 
Anatoly Podgoretsky ©   (2011-06-16 13:16) [18]


> ... Вы правы. Только что перепроверил. Сделал формат Время
> ввел время и получил в ответ число.

Ну сколько же можно, ведь давно уже сказано, что это число, а вот интерпритация на твоей совести.


 
sniknik ©   (2011-06-16 15:00) [19]

> ведь давно уже сказано, что это число
и сколько раз повторялось, но все равно на те же "грабли" наступают, хотя говорят, что всё знают - "ликбез этот проходили", а повторяющий просто "умничает"... но тем не менее, с завидным постоянством...  хрясь, и опять граблями в лоб.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1307997001
Юрий
2011-06-14 00:30
2011.10.02
С днем рождения ! 14 июня 2011 вторник


2-1308015939
vasja666
2011-06-14 05:45
2011.10.02
sql запрос дата


15-1307421536
Дмитрий С
2011-06-07 08:38
2011.10.02
Как TWinConontrol-у добавить свойств?


15-1307426451
RWolf
2011-06-07 10:00
2011.10.02
File timestamps backup/restore


15-1307656883
Германн
2011-06-10 02:01
2011.10.02
Сетевой диск на локальном компьютере





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский