Chapter 03. Excelからの読み込み
このチュートリアルは、Excel から値を読み込む解説を行います。Excel から値を読み込むためには、 SGLXRequest() 関数を用います。また、キーボードも使います。 キーボードを使ったチュートリアルは、こちらにありますので、そちらもご参照下さい。
1. 準備

Chapter 03 で使用するサンプルファイルをご用意致しましたので、ダウンロードして下さい。
Excel ファイルを開きます。開く際に警告が表示された場合は、マクロを有効にする、を選択して下さい。もし、マクロを無効に
してしまった場合は、Excel ファイルを一旦閉じ、もう一度開いて今度はマクロを有効にする、を選択して下さい。
Chapter 03 ではSGLXRequest() 関数を用いて、AN5 の値を受信するプログラムの例を紹介します。
2. セルの座標
SGLXRequest 関数は、以下のように宣言されています。
/** * SGLX からデータを受信します * @param cell (char*) セルの座標 */ void SGLXRequest(char* cell);
SGLXRequest 関数による受信の結果を取得するためには、 SGLXGetLastResult() という関数を呼びます。SGLXGetLastResult() 関数は、常に最新の結果を返します。
/** * 最新の通信の結果を取得します * @param (char*) result 結果 */ void SGLXGetLastResult(char* result);
3. 取得する
セルの AN5 をSGLXRequest() 関数の引数に指定します。
SGLXRequest("AN5");
SGLXGetlastResult() 関数を呼び、読み込んだ値をプログラム内で取得します。
SGLXGetLastResult(result); // 読み込んだ値を取得する printf("文字列\t%s\n", result); // 文字列としての出力
SGLXGetlastResult() 関数の引数は、char* 型です。プログラム内で、result を整数値や実数値として扱いたい場合は、 atoi 関数や atof 関数を用いて下さい。
SGLXGetLastResult(result); // 読み込んだ値を取得する printf("文字列\t%s\n", result); // 文字列としての出力 printf("整数値\t%d\n", atoi(result)); // 整数値としての出力 printf("実数値\t%f\n", atof(result)); // 実数値としての出力
では、キーボードの操作と連動させます。以下に全文を載せます。
// Chapter03. Excelシートからの読み込み #include "sfcglx.h" char result[512]; // 結果を格納する変数 void display() { SGLXServer(); // BGColor(200, 200, 200); // 背景の色 SGBeginEdit(); // 形状の描画の開始. SGEndEdit(); // 形状の描画の終了. SGSwapFrames(); // フレームを入れ替える. } void key(unsigned char c, int x, int y) { if (c == 'a') { SGLXRequest("AN5"); // セルの値を読み込む } else if (c == 'b') { SGLXGetLastResult(result); // 読み込んだ値を取得する printf("文字列\t%s\n", result); // 文字列としての出力 printf("整数値\t%d\n", atoi(result)); // 整数値としての出力 printf("実数値\t%f\n", atof(result)); // 実数値としての出力 } } int main(int argc, char** argv) { SGInit(argc, argv); // SGL の初期化 // SGLX の初期化 SGLXInit("C:\\Users\\Akito\\Documents\\MediaDesign3D\\6"); SGOpenWindow(0,0,500,500); // 500x500のウィンドウ SGSetDisplay(display); // 描画 SGKeyBoard(key); // キーボード SGCallBack(); // コールバック関数を登録 return 0; }
display() 関数の中の SGLXServer() 関数の説明は、こちらです。 Chapter 03 は以上です。お疲れ様でした。