SSpread

Q1 27
既存のExcelファイルへシートを追加し、SSpreadをエクスポートしたい
(SaveExcel2007Fileメソッド利用)   
A1 27
Biz/Browser V ver 5.0.2.0より追加されたSaveExcel2007Fileメソッドでは、既存Excelファイルにシートを追記する形でエクスポートすることができます。

SaveExcel2007Fileメソッドの第五引数に、既存のExcelファイル(ExcelファイルのURL、またはReaderオブジェクト)を指定すると新しいシートを追加したExcelファイルが出力されます。

実際の指定方法は以下のサンプルソースをご参照ください。

サンプルソースでは、OpenDialogメソッドで選択したExcelファイル「sample1.xlsx」(Readerオブジェクト)をSaveExcel2007Fileメソッドの第五引数に指定し、シートを追記した「sample2.xlsx」を出力しています。

[サンプルコード]
 var fs = new FileSystem(FileSystem.PRIVATE_ROOT);
 /* ★シートを追記するExcelファイルを選択★ */
 var f = fs.OpenDialog("追記したいxlsを選択してください",
           "Excelファイル(*.xls)=*.xlsx", "xlsx","sample1.xlsx");
 var tempdata = f.ReadBinary();

 /* ★シートを追記してエクスポートするExcelファイルを選択★ */
 var newfile = fs.SaveDialog("保存するファイル名を指定してください", 
               "Excelファイル(*.xlsx)=*.xlsx", "xlsx", "sample2.xlsx");
 try{
  f.seek(0);
 /* ★既存Excelファイルにシートを追記し、
「sample2.xls」としてエクスポート★ */
  ^.SSpread2.SaveExcel2007File(newfile, "", 
                      $SS_EXCELSAVEFLAG_NOFORMULAS, "シート2",f);
 }catch( ex ) {
  if(ex.code == 24){
   newfile.Write(tempdata);
  }
  //.MessageBox("同名でシート追加することは出来ません。
                              \r別名ファイルを指定してください");
 }
 newfile.close();
 f.close();
※CRSスクリプトが途中で改行されている部分を実際に記述する場合は、1行で記述してください。

CRSファイル形式のサンプル
  「既存のExcelファイルへシートを追加し、SSpreadをエクスポートしたい(Sspd50_027.zip)
で実際の動作をご確認いただけます。

※注意※
1. 既存のExcelファイルは変更されず、シートが追加された新しいExcelファイルとして保存されます。
また既存Excelファイルに存在するマクロ、グラフなどのシート以外の情報は削除されます。
2. 既存のExcelファイルに直接シートを追記する事はできません。
第一引数に指定するエクスポート先Excelファイル(Writerオブジェクト)と第四引数に指定する既存のExcelファイル(Readerオブジェクト)に同じファイルを指定した場合、正しくエクスポートができず例外が発生します。
また、Excelファイルが破損する場合がありますのでご注意ください。

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