fc2ブログ
  • 館内放送 [ツイッター]

    キンコンカンコーン・・・うみゃーだよ。館内放送だみゃ。
    ・・・・・キンコンカンコーン・・・ブツ
  • 町内会からのお知らせ [相互RSS]

【技術部】[C++] C++でのExcel操作まとめ


※カテゴリー【技術部】は技術者向けの記事となります。

C++でのExcelファイルの操作についてまとめました。


【目次】
■ Excel起動
■ Excelファイルを開く
■ 指定のシートを取得
■ セルの取得 [ 単一指定 ]
■ セルの取得 [ 範囲指定 ]
■ セルに値を入力する
■ 罫線を引く
■ セルの背景色を設定
■ Excelファイル保存
■ Excelを閉じる






Excel起動
Excel::_ApplicationPtr excel;
excel.CreateInstance( "Excel.Application" );
excel->Visible = VARIANT_TRUE;
excel->DisplayAlerts = false;


Excelファイルを開く
Excel::WorkbooksPtr work_books = excel->GetWorkbooks();
Excel::_WorkbookPtr work_book = work_books->Open( "Excelファイルパス" );



指定のシートを取得
Excel::_WorksheetPtr work_sheet;
work_sheet = work_book->GetWorkSheets()->GetItem( _variant(1) );


セルの取得 [ 単一指定 ]
Excel::RangePtr range = work_sheet->Cells->Item[ 1 ][ 1 ];
※ 1行目 1列目のセルを取得。


セルの取得 [ 範囲指定 ]
Excel::RangePtr range = work_sheet->GetRange(
    work_sheet->Cells->Item[ 1 ][ 1 ],
    work_sheet->Cells->Item[ 5 ][ 5 ]
);
※ 1行目 1列目のセルから5行目 5列目のセルを範囲指定で取得。


セルに値を入力する
range->Value2 = "文字列";


罫線を引く
Excel::BorderPtr border;
border = range->GetBorders()->GetItem( Excel::xlEdgeTop );
border->PutLineStyle( Excel::xlContinuous );
border->PutWeight( Excel::xlMedium );

【 罫線の位置 】
Excel::xlEdgeTop ・・・・ 上辺
Excel::xlEdgeBottom ・・・ 下辺
Excel::xlEdgeRight ・・・ 右辺
Excel::xlEdgeLeft ・・・ 左辺

【 罫線の種類 】
Excel::xlContinuous ・・・ 実線
Excel::xlDot ・・・ 点線
Excel::xlDouble ・・・ 二重線
Excel::xlLineStyleNone ・・・ 無し

【 罫線の太さ 】
Excel::xlThin ・・・ 通常
Excel::xlMedium ・・・ 太線
Excel::xlThick ・・・ 極太


セルの背景色を設定
range->Interior->Color = RGB( 255, 0, 0 );


Excelファイル保存
work_book->Save();


Excelを閉じる
work_book->Close();
excel->Quit();



ご質問、ご意見等ありましたら下記コメントにご投稿お願いいたします。
関連記事
この記事へのリアクション

コメントの投稿

非公開コメント

C++でExcelファイルのシートのコピーの方法は分かりますか?
コメントありがとうございます。
現在、手元にC++の実行環境が用意できておらず、未検証なコードとなってしまいますがご提案いたします。
以下のコードをお試しいただけますでしょうか。

Excel::_WorksheetPtr work_sheet;
work_sheet = work_book->GetWorkSheets()->GetItem(_variant(1));
work_sheet->Copy(vtMissing,work_sheet);

一番先頭のシートが右側にコピーされると思います。
左側にコピーする場合は、
work_sheet->Copy(work_sheet,vtMissing);
となります。



タグ:技術部C++Excel操作

プロフィール

うみゃー・アパカ

Author:うみゃー・アパカ
UMYA.net公式ブログです。
ツイッター:umya_net


リンクフリーです!
アドレス:http://umyanet.blog.fc2.com/

公式ホームページ

ラインスタンプ配信中!

リンク



スマホアプリ配信中

黄金疾走

スポンサード

人気商品

Powered by amaprop.net