2016-04-11 52 views
1

私はそれに渡されるデータのフォーマットを含むExcelファイルを持っています。誰かが既存のExcelファイルを開く方法を教えてくれますか?OLE - delphiを使用して既存のExcelファイルを呼び出す

var 
    myExcel:variant; 
begin 
    myExcel:=CreateOleObject('Excel.application'); 
    myExcel.caption:='Summary of Check Issued'; 
    myExcel.visible:=false; 
    myexcel.workbooks.add(1); 
end 

このステートメントは新しいExcelファイルを作成しますが、私の望むものは既存のExcelファイルを開くだけの文です。

+0

この種の質問を解決するには、一般的なルールがあります。 Excel - fgoをメニューに起動します(クラシックメニューをインストールしていない限り、異なるExcelバージョンとは異なります)。**マクロレコーダー**を有効にします。ファイルのオープンやセル形式の変更など、必要な操作を行います。その後、** macros ** mnagerダイアログに戻り、レコーダーを停止し、新しいマクロの編集を開始します。そのマクロは、マウスとキーボードで行ったことを行うVBAプログラムになります。準備が整ったプログラムをVBAからDelphiに変換するだけです。 –

答えて

2

あなたが探しているコードの正確な行は次のとおりです。

var 
    ExcelFile : Variant; 
    WorkBook : Variant; 
    WorkSheet : Variant; 

begin 

    // Open Excel OLE 
    ExcelFile := CreateOleObject('Excel.Application'); 

    // Handle WoorkBook 
    if not VarIsNull(ExcelFile) then begin 
     WorkBook := ExcelFile.WorkBooks.Open('yourfilename.xls'); 

     if not VarIsNull(WorkBook) then begin 
     // Handle Sheet 
      WorkSheet := WorkBook.WorkSheets.Item['yourSheetName']; 
     end; 

    end; 

は、より詳細な情報については、this articleを参照してください:

WorkBook := ExcelFile.WorkBooks.Open('yourfilename.xls'); 

完全なコードは次のようになります。

+0

hi。 「申し訳ありませんが、Account.xlsが見つかりませんでした」というエラーが表示されました。私はファイルを置くべきですか?私はすでに自分のプロジェクトがあるフォルダに貼り付けた – user3505049

+0

私はWorkBook:= myExcel.WorkBooks.Open( 'D:\ files \ project \ Account.xls')でも試しましたが、それでも同じエラーがあります – user3505049

+0

まずファイルの拡張子は '.xls'です。私が使用していたものとは異なるバージョンのExcelでファイルを作成した場合、おそらく '.xlsx'という若干異なる拡張子を持つかもしれません。それでもうまくいかない場合は、 'yourfilename.xls'を' c:¥users¥tom¥documents¥account.xls'のように見えるファイルの絶対パスで置き換えてみてください。 –

関連する問題