比如日期是:2009-9-1
如何转换为excel里面的格式:二○○九年九月一号
在delphi中代码怎么写,感谢了!

解决方案 »

  1.   

    NumberFormatLocal='\@ "EEEE年O月A日';
      

  2.   

    你好,直接在delphi做轉換,再放到excel的變數即可,謝謝。
      

  3.   

    Function DateTimeToHanStr(DateS,TimeS:string;K:integer):String; //英文日期时间TO中文字符
                             // k=0 2001年1月23日 上午 9:12
                             // k=1 2001年1月23日
                             // k=2 2001年1月23日 上午
                             // k=3 上午 9:12
                             // K=4 9:12
    var Year, Month, Day, Hour, Min, Sec, MSec: Word;
        S1,S2,S3:string;
    begin
      if DateS='' then DateS:=DateToStr(Date);
      if TimeS='' then TimeS:=TimeToStr(Time);
      DecodeDate(StrToDate(DateS), Year, Month, Day);
      S1:=FloatToStr(Year)+'年'+FloatToStr(Month)+'月'+FloatToStr(Day)+'日';
      DecodeTime(StrToTime(TimeS), Hour, Min, Sec, MSec);
      if Hour<12 then S2:='上午'
                 else begin
                        S2:='下午';
                        Hour:=Hour-12;
                      end;
      S3:=IntToStr(Trunc(Hour));
      if length(S3)=1 then S3:='0'+S3;
      S4:=IntToStr(Trunc(Min));
      if length(S4)=1 then S4:='0'+S4;
      if k=0 then DateTimeToHanStr:=S1+' '+S2+' '+S3+':'+S4;
      if k=1 then DateTimeToHanStr:=S1;
      if k=2 then DateTimeToHanStr:=S1+' '+S2;
      if k=3 then DateTimeToHanStr:=S2+' '+S3+':'+S4;
      if k=4 then DateTimeToHanStr:=S3+':'+S4;
    end;
      

  4.   

    以前写的,类似。
    procedure datetrans(var x:string);
    var
    i,t:integer;
    begin//0
    for i:=0 to length(trim(x)) do
    begin // 5
     if (x[i]='-')  or (x[i]='.') or (x[i]=' ') or (x[i]=':')or (x[i]=':') or (x[i]='/')  then
     begin   // 3
       t:=i;
        if (x[t+2]='-')  or (x[t+2]='.') or (x[t+2]=' ') or (x[t+2]=':')or (x[t+2]=':') or (x[t+2]='/') or (ord(x[i+2])>127) then
        insert('0',x,t+1);
        end;
        end;
        for i:=0 to length(trim(x)) do
    begin // 5
    if (ord(x[i])>127) and (ord(x[i+1])>127) then
    begin
      t:=i+1;
      if  (ord(x[t+2])>127) or (x[t+2]='-')  or (x[t+2]='.') or (x[t+2]=' ') or (x[t+2]=':')or (x[t+2]=':') or (x[t+2]='/')  then
         insert('0',x,t+1);
         end;
       end;
     for i:=0 to length(trim(x)) do
     begin //1
     if  (ord(x[i])>127) then
    begin //  2
     t:=i;
    Delete(x,t,2);
     end; //2
    end; // 1for i:=0 to length(trim(x)) do
    begin // 5
     if (x[i]='-')  or (x[i]='.') or (x[i]=' ') or (x[i]=':')or (x[i]=':') or (x[i]='/') then
     begin   // 3
       t:=i;
    Delete(x,t,1);
    end; //3
    end; //5
    for i:=0 to length(trim(x)) do
     begin //6
     if x[i]='  ' then
    begin // 4
     t:=i;
    Delete(x,t,2);
    end;//  //4
    end;//6
    if x[1]='0' then
    insert('20',x,1);
     for i:=0 to length(trim(x)) do
     begin  //7
    if length(x)>15 then
    x:=copy(x,1,length(x)-6);
     end;   //7