EXCELに文字型の数字を出力

解決


torime  2005-11-13 14:46:55  No: 18681

'000001'をEXCELに書き込むと、強制的に '1' になってしまうのですが、'000001'の状態で書き込めないものでしょうか?


HOta  2005-11-13 18:03:24  No: 18682

書き込むセルを文字型にすればOK


torime  2005-11-14 04:28:41  No: 18683

文字型に任意のColを変更するには、どうしたらよいでしょうか?
Delphi3で、EXCELは2000です。

procedure TFrmSeibi.SpeedButton11Click(Sender: TObject);
var ROW,COL,I:Integer;
    QRY_012:TQuery;
begin
 Excel := CreateOleObject('Excel.Application');
 Excel.Visible:= True;
 WorkBook := Excel.WorkBooks.Add;
 WorkSheet := WorkBook.WorkSheets[1];
 WorkSheet.Activate;
 if not Database1.Connected then Database1.Open;
 if Database1.InTransaction then Database1.Commit;
 QRY_012 := TQuery.Create(Self);
 with QRY_012 do begin
   DatabaseName := Database1.DatabaseName;
   CLOSE;
   SQL.CLEAR;
   SQL.Add('SELECT * FROM NAIYOU');
   RequestLive:=FALSE;
   if not prepared then prepare;
   OPen;
   LAST;
   FIRST;
   if RecordCount>0 then begin
     Excel.ActiveSheet.Cells[1,1].Value :='作業NO';
     Excel.ActiveSheet.Cells[1,2].Value :='作業内容';
     I:=1;
     repeat
       I:=(I+1);
       Excel.ActiveSheet.Cells[I,1].Value :=FieldByName('作業NO').AsString;
       Excel.ActiveSheet.Cells[I,2].Value :=FieldByName('内容').AsString;
       NEXT;
     until EOF;
    end;
   CLOSE;
   SQL.CLEAR;
   FRee;
  end;
end;

というような単純な書き方だと、"["+Fields[I].asString+"]" にでもしない限り、0001が1になってしまうのです。


OHta  2005-11-14 05:07:25  No: 18684

Excelのマクロを記録してみると、
    Selection.NumberFormatLocal = "@"
の様に記録されました。
これを
Excel.ActiveSheet.Cells[1,1].NumberFormatLocal = "@"
の様に書けば良いのでは。


torime  2005-11-14 05:16:57  No: 18685

Excel.ActiveSheet.Cells[I,1].NumberFormatLocal:='@';
と記述することにより、思い通りの結果を得られました。
OHtaさん。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加