C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49275] Re:빌더에서...엑셀의 셀에 이미지(그림)을 삽입할수 있나요...
장성호 [nasilso] 4727 읽음    2007-05-16 17:48
가능합니다.
문론 ole를 통해서요

아래 두 함수를 한번 살표 보세요

ExcelInsertImage
SaveBitmapToExcel


   // Variant V;
    Variant excel_app;
    Variant excel_window;
    Variant excel_book;
    Variant my_worksheet;

//----------------------------------------------------------------------------
void __fastcall TDLG_RPT_EXCEL::ExcelOpen()
{
    excel_app=Variant::CreateObject("excel.application");
    excel_app.OlePropertySet("Visible", (Variant)false);
}
//---------------------------------------------------------------------------
void __fastcall TDLG_RPT_EXCEL::ExcelExit()
{
    excel_app.OleFunction("Quit");
    excel_app = Unassigned;
}
//---------------------------------------------------------------------------

//excel파일을 읽어온다.
void __fastcall TDLG_RPT_EXCEL::ExcelReportFileOpen(AnsiString asFileName)
{
    excel_app.OlePropertyGet("WorkBooks").OleProcedure("Open",asFileName.c_str());
    excel_window = excel_app.OlePropertyGet("ActiveWindow");
    excel_book=excel_app.OlePropertyGet("ActiveWorkbook");
    my_worksheet=excel_book.OlePropertyGet("ActiveSheet");

}
//---------------------------------------------------------------------------

// image파일을 특정sheet의 특정 cell에  insert 하는 코드

Variant __fastcall TDLG_RPT_EXCEL::ExcelInsertImage(AnsiString sh_name, int iRow, int iCol, AnsiString iFileName)
{
    Variant cells;
    my_worksheet = excel_book.OlePropertyGet("WorkSheets", sh_name.c_str());
    my_worksheet.OleFunction("Select");
    cells = my_worksheet.OlePropertyGet("Cells", iRow, iCol);
    cells.OleFunction("Select");
    Variant c_image;
    c_image = my_worksheet.OlePropertyGet("Pictures").OleFunction("Insert", WideString(iFileName));
    c_image.OleFunction("Select");
    return c_image;
}
//---------------------------------------------------------------------------

//Bitmap을 특정 Sheet 특정 Cell에 Paste하는 코드
//클립보드를 이용함

void __fastcall TDLG_RPT_EXCEL::SaveBitmapToExcel(Graphics::TBitmap *bmp,String sSheetName,int iRow,int iCol)
{
    if(bmp)
    {
        Clipboard()->Assign(bmp);
        my_worksheet = excel_book.OlePropertyGet("WorkSheets", WideString(sSheetName));
         my_worksheet.OlePropertyGet("Cells", iRow, iCol).OleProcedure("Select");
        my_worksheet.OleProcedure("Paste");
    }
}
//---------------------------------------------------------------------------

코딩맨 님이 쓰신 글 :
: 혹시 빌더에서 엑셀파일의 한 셀을 컨트롤할수 있나요...
: 보통 문자는 엑셀에  tab 키를 구분자로 넣어 저장하면 바로 열리잖아요...
: 문자만 아니라....그림도 일정사이즈를 명시하여 같이 입력할수 있나요...
: 한 페이지에 보여질수 있도록....
:
: 빌더에서 프린트하려면...좌표를 각각 다 써넣어 주어야 하잖아요....
: 그렇게 하지 않고 프린트할 내용을 미리 엑셀로 만들어 놓은후 엑셀에서 그냥 바로 프린트 하면 편할것 같아서요...

+ -

관련 글 리스트
49274 빌더에서...엑셀의 셀에 이미지(그림)을 삽입할수 있나요... 코딩맨 3886 2007/05/16
49285     Re:빌더에서...엑셀의 셀에 이미지(그림)을 삽입할수 있나요... 슬.강슬기 2919 2007/05/17
49287         Re:Re:빌더에서...엑셀의 셀에 이미지(그림)을 삽입할수 있나요... 코딩맨 3420 2007/05/17
49275     Re:빌더에서...엑셀의 셀에 이미지(그림)을 삽입할수 있나요... 장성호 4727 2007/05/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.