Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.02;
Скачать: CL | DM;

Вниз

Конвертация из 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
15-1307587555
Дмитрий С
2011-06-09 06:45
2011.10.02
Как запретить всяким quicktime, vlc, acrobat-ам регистрироваться


15-1307485149
Marser
2011-06-08 02:19
2011.10.02
А я вот во Львов переехал...


2-1308002107
And7
2011-06-14 01:55
2011.10.02
Edit и Skrollbar


4-1251086922
GrayFace
2009-08-24 08:08
2011.10.02
Как бы перевести код клавиши в символ с учетом языка?


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