SSpread

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

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

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

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

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

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

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

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

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