카테고리

  • 안드로이드
  • IOS
  • MFC
  • JAVA
  • AWS
  • LAMP
  • 여행&사진
  • 이런저런생활
  • 2016년 2월 1일 월요일

    [MFC] Excel 엑세스, 데이터 입력, 테두리 입력 소스 코드

    환경
    Visual Studio 2010
    Windows 7 일본어 버젼

    #include "CApplication.h"
    #include "CWorkbooks.h"
    #include "CWorkbook.h"
    #include "CWorksheets.h"
    #include "CWorksheet.h"
    #include "CRanges.h"
    #include "CRange.h"
    #include "CBorders.h"
    #include "CBorder.h"

    void CExcelTest5Dlg::OnBnClickedOk()
    {
    // TODO: ここにコントロール通知ハンドラー コードを追加します。

    #define VERSION 1
    #define DATE 2
    #define CONTENT 3
    #define ITEM 4
    #define REMARK 5

    CApplication App;

    if(!App.CreateDispatch(_T("Excel.Application"))) {
    ASSERT(0);
    return;
    }

    // App.put_Visible(TRUE);

    CWorkbooks Workbooks = App.get_Workbooks();

    COleVariant varNull(DISP_E_PARAMNOTFOUND, VT_ERROR);
    // varNull.ChangeType(VT_NULL);

    CWorkbook Workbook = Workbooks.Open(_T("D:\\共有フォルダ\\MDBツール関連ファイル_20160112\\Change history for GR-TIEMS-MDB (Standard type).xlsx"),
    varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull);

    CWorksheets Worksheets = Workbook.get_Worksheets();
    CWorksheet Worksheet = Worksheets.get_Item(COleVariant((long)1));

    CRange Cells = Worksheet.get_Cells();

    //** Parameter Row, Culumn
    CRange Cell = Cells.get_Item(COleVariant((long)4), COleVariant((long)VERSION)).pdispVal;
    CRange Cell2 = Cells.get_Item(COleVariant((long)4), COleVariant((long)DATE)).pdispVal;
    CRange Cell3 = Cells.get_Item(COleVariant((long)4), COleVariant((long)CONTENT)).pdispVal;
    CRange Cell4 = Cells.get_Item(COleVariant((long)4), COleVariant((long)ITEM)).pdispVal;
    CRange Cell5 = Cells.get_Item(COleVariant((long)4), COleVariant((long)REMARK)).pdispVal;

    //** データ取得
    CString str = Cell.get_Text().bstrVal;
    CString str2 = Cell2.get_Text().bstrVal;
    CString str3 = Cell3.get_Text().bstrVal;
    CString str4 = Cell4.get_Text().bstrVal;

    //** データ保存
    Cell4.put_Value2(COleVariant(_T("Hello")));

    //** Alignment設定
    //** Center -4108, Left -4131, Right -4152
    Cell4.put_VerticalAlignment(COleVariant((short) -4131));

    //** 下の線を設定
    CBorders border = Cell4.get_Borders();
    CBorder bottomborder = border.get_Item((long) 9);
    bottomborder.put_LineStyle(COleVariant((short) 1));

    //** 現在ファイルを保存する場合
    Workbook.Save();

    //** 他の名前で保存する場合(同一なファイル名がある場合通知ダイアログ表示)
    // Worksheet.SaveAs(_T("D:\\共有フォルダ\\MDBツール関連ファイル_20160112\\Change history for GR-TIEMS-MDB (Standard type).xlsx"),
    // varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull, varNull);

    App.Quit();
    Worksheet.ReleaseDispatch();
    Workbooks.ReleaseDispatch();
    App.ReleaseDispatch();

    MessageBox(_T("完了"), MB_OK);

    // CDialogEx::OnOK();
    }

    댓글 없음 :

    댓글 쓰기