2009-09-25 2 views
0

클라이언트에서 Excel 2003 시트를 사용하고 있습니다.Excel 시트에 이름이 지정되지 않은 셀은 여전히 ​​셀의 데이터를 가져와야합니다.

이 셀에서 데이터를 추출하는 델파이 애플리케이션을 업데이트해야하지만 셀의 이름이 전혀 지정되지 않은 경우는 j3j55입니다.

셀의 데이터를 다른 응용 프로그램으로 보낼 수 있습니까?

Delphi 응용 프로그램에서이 값을 사용할 수 있습니까?

답변

5

OLE를 사용하여 Delphi를 통해 Excel 파일을 처리 할 수 ​​있습니다.

uses 
    ComObj; 

procedure TForm3.btn1Click(Sender: TObject); 
var 
    ExcelApp: OleVariant; 
begin  
    try  
     ExcelApp := CreateOleObject('Excel.Application'); 
     if not VarIsEmpty(ExcelApp) then 
     Begin 
     ExcelApp.Workbooks.Open('c:\yourfile.xls'); //Open File 
     ShowMessage(ExcelApp.Range['J55', 'J55'].Value); //Extract value from Cell J55 
     End;  

    finally 

    if not VarIsEmpty(ExcelApp) then 
    begin 
     ExcelApp.DisplayAlerts := False; 
     ExcelApp.Quit; 
    end; 

    end; 

end; 

안녕히 계십시오.

+1

Excel에서 매크로를 기록한 다음 매크로 코드를 VBA에서 Delphi로 변환하는 것이 좋습니다. –

-1

물론 이죠?

Excel 개체 모델 &을 사용하면 일련의 클래스를 사용하여 셀의 내용에 액세스 할 수 있습니다.

VB (스크립트) 예를

dim xlApp 
set xlApp = CreateObject("Excel.Application") 

dim wkBook 
set wkBook = xlApp.WorkBooks.Add 

dim wkSheet 
set wkSheet = wkBook.Sheets(1) 

dim cell 
set cell = wkSheet.Cells("A1") 'get the reference to cell A1 

msgbox cell.Value 

에 대해 배울 수있는 가장 좋은 방법 엑셀 개체 모델은에
1. 엑셀
2. Alt + F11 키를 누릅니다 (VBA 편집기)
3. 이

보여줍니다 루트 클래스는 일이 거기에서 흘러 다음 응용 프로그램 &이다 F2는 (개체 브라우저)
4. 드롭 다운에서 Excel을 선택합니다.
예 : 워크 북 -> 워크 시트 -> 워크 시트 -> 셀 (범위) 등

희망이 있습니다.