Форум: "Начинающим";
Текущий архив: 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