SSpread

Q1
SSpreadクラスを利用した表のコピー
[内容]
SSpreadクラスの表(SSpread_A)のデータやプロパティを別のSSpreadクラスの表
(SSpread_B)へ一括コピーするにはどうしたらよいか


A1
SaveToFileメソッド、LoadFromFileメソッドを利用して、コピー元の表(SSpread_A)の内容を
バイナリ形式のファイルに保存し、別のSSpreadクラスの表(SSpread_B)では保存した
ファイルからデータをロードすることで、表のデータやプロパティを一括にコピーできます。

なおver5.0.3.0以降であれば、SaveBlockToBufferメソッド、LoadBlockFromBufferメソッドを
利用して、データをファイルに出力することなく表のコピーが可能です。

[サンプルコード]

  (1)SaveToFileメソッド、LoadFromFileメソッドを利用
    (データを一旦ファイルに保存する)
SSpread SSpread_A {
 X = 15;
 Y = 114;
 Width = 229;
 Height = 177;
 ・・・(略)・・・
}
SSpread SSpread_B {
 X = 281;
 Y = 113;
 Width = 229;
 Height = 177;
}
 
Button Button1 {
 X = 14;
 Y = 360;
 Width = 157;
 Height = 36;
 Title = "コピー(1)";
 
 Function OnTouch( e ) {
  var fs = new FileSystem();
  var fw = fs.open( "/saveFile", FileSystem.OPEN_WRITE);
  /* SSpread_Aの内容をバイナリ形式のファイルに保存 */
  ^.SSpread_A.SaveToFile(fw, $FALSE);
  fw.Close();
  /* SSpread_Bへバイナリ形式のファイルの内容を読込み */
  var fr = fs.open( "/saveFile", FileSystem.OPEN_READ);
  ^.SSpread_B.LoadFromFile(fr);
  fr.Close();
 }
}

  (2)SaveBlockToBufferメソッド、LoadBlockFromBufferメソッドを利用
    (ver5.0.3.0以降の機能)
Button Button2 {
 X = 14;
 Y = 360;
 Width = 157;
 Height = 36;
 Title = "コピー(2)";
  
 Function OnTouch( e ) {
  var a = ^.SSpread_A;
  var b = ^.SSpread_B;
  /* 指定セルのデータをバイナリデータで取得 */
  var data = a.SaveBlockToBuffer(1, 1, a.MaxCols, a.MaxRows);
  /* 指定したセルへバイナリデータをロード */
  b.LoadBlockFromBuffer(1, 1, b.MaxCols, b.MaxRows, data);
 }
}

実際の挙動については、CRSファイル形式のサンプル
 「SSpreadクラスを利用した表のコピー(Sspd50_006.zip)」
をご確認ください。

管理番号:Sspd50_006
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ