サンプル コード

  • 日本のお客様からよく寄せられる SpreadsheetGear の使用方法 (サンプル コード) を随時更新しています。

サンプル コード内で使用されている変数について

特に指定のない限り、サンプル コードでは以下のコードによりワークブックセット (IWorkbookSet)、ワークブック (IWorkbook)、ワークシート (IWorksheet)、セル範囲 (IRange) を変数宣言した前提で処理を行っています。

            SpreadsheetGear.IWorkbookSet workbookSet = SpreadsheetGear.Factory.GetWorkbookSet();  // ワークブックセットの定義
            SpreadsheetGear.IWorkbook workbook = workbookSet.Workbooks.Add();         // ワークブックの定義
            SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets[0];            // ワークシートの定義
            SpreadsheetGear.IRange cells = worksheet.Cells;                           // セル範囲の定義
          
            Dim workbookSet As SpreadsheetGear.IWorkbookSet = SpreadsheetGear.Factory.GetWorkbookSet()  ' ワークブックセットの定義
            Dim workbook As SpreadsheetGear.IWorkbook = workbookSet.Workbooks.Add()   ' ワークブックの定義
            Dim worksheet As SpreadsheetGear.IWorksheet = workbook.Worksheets(0)      ' ワークシートの定義
            Dim cells As SpreadsheetGear.IRange = worksheet.Cells                     ' セル範囲の定義
          

1. セルの操作

              // セル A1 から A8 に値を設定
              cells["A1:A8"].Formula = "1234.5678";

              // さまざまなセルの表示形式を指定
              cells["A1"].NumberFormat = "General";
              cells["A2"].NumberFormat = "0";
              cells["A3"].NumberFormat = @"¥#,##0.00_);(¥#,##0.00)";
              cells["A4"].NumberFormat = "yyyy/m/d";
              cells["A5"].NumberFormat = "h:mm AM/PM";
              cells["A6"].NumberFormat = "0.00%";
              cells["A7"].NumberFormat = "# ??/??";
              cells["A8"].NumberFormat = "0.00E+00";

              // 文字列書式の指定 (注意: 文字列書式は、値を設定する前に設定します)
              cells["A9"].NumberFormat = "@";
              cells["A9"].Formula = "00123456";
            
              ' セル A1 から A8 に値を設定
              cells("A1:A8").Formula = "1234.5678"

              ' さまざまなセルの表示形式を指定
              cells("A1").NumberFormat = "General"
              cells("A2").NumberFormat = "0"
              cells("A3").NumberFormat = "¥#,##0.00_);(¥#,##0.00)"
              cells("A4").NumberFormat = "yyyy/m/d"
              cells("A5").NumberFormat = "h:mm AM/PM"
              cells("A6").NumberFormat = "0.00%"
              cells("A7").NumberFormat = "# ??/??"
              cells("A8").NumberFormat = "0.00E+00"

              ' 文字列書式の指定 (注意: 文字列書式は、値を設定する前に設定します)
              cells("A9").NumberFormat = "@"
              cells("A9").Formula = "00123456"
            
              // 横位置を [左詰め]に設定
              cells["A1"].HorizontalAlignment = SpreadsheetGear.HAlign.Left;
              // 縦位置を [下詰め]に設定
              cells["A1"].VerticalAlignment = SpreadsheetGear.VAlign.Bottom;

              // 横位置を [選択範囲内で中央]に設定
              cells["A2"].HorizontalAlignment = SpreadsheetGear.HAlign.CenterAcrossSelection;
              // 縦位置を [中央揃え]に設定
              cells["A2"].VerticalAlignment = SpreadsheetGear.VAlign.Center;
            
              ' セル A1 の横位置を [左詰め]に設定
              cells("A1").HorizontalAlignment = SpreadsheetGear.HAlign.Left
              ' セル A1 の縦位置を [下詰め]に設定
              cells("A1").VerticalAlignment = SpreadsheetGear.VAlign.Bottom

              ' セル A2 の横位置を [選択範囲内で中央]に設定
              cells("A2").HorizontalAlignment = SpreadsheetGear.HAlign.CenterAcrossSelection
              ' セル A2 の縦位置を [中央揃え]に設定
              cells("A2").VerticalAlignment = SpreadsheetGear.VAlign.Center
            
              // セル A1 から C3 を結合して 1 つのセルにする
              cells["A1:C3"].Merge();

              // セル D1 から F3 までの結合セルを解除する
              cells["D1:F3"].UnMerge();
            
              ' セル A1 から C3 を結合して 1 つのセルにする
              cells("A1:C3").Merge()

              ' セル D1 から F3 までの結合セルを解除する
              cells("D1:F3").UnMerge()
            
              // シート全体
              cells.Font.Name = "MS P明朝";
              cells.Font.Size = 11;

              // セル A1 から E5 まで
              cells["A1:E5"].Font.Name = "MS Pゴシック";
              cells["A1:E5"].Font.Bold = true;
              cells["A1:E5"].Font.Color = SpreadsheetGear.Colors.Red;
            
              ' シート全体
              cells.Font.Name = "MS P明朝"
              cells.Font.Size = 11

              ' セル A1 から E5 まで
              cells("A1:E5").Font.Name = "MS Pゴシック"
              cells("A1:E5").Font.Bold = True
              cells("A1:E5").Font.Color = SpreadsheetGear.Colors.Red
            
              // セル B2 から D8 の上側を参照
              SpreadsheetGear.IBorder border = cells["B2:D8"].Borders[SpreadsheetGear.BordersIndex.EdgeTop];

              // 罫線のスタイル、太さ、色を指定
              border.LineStyle = SpreadsheetGear.LineStyle.Continuous;
              border.Weight = SpreadsheetGear.BorderWeight.Thin;
              border.Color = SpreadsheetGear.Colors.Blue;
            
              ' セル B2 から D8 の上側を参照
              Dim border As SpreadsheetGear.IBorder = cells("B2:D8").Borders(SpreadsheetGear.BordersIndex.EdgeTop)

              ' 罫線のスタイル、太さ、色を指定
              border.LineStyle = SpreadsheetGear.LineStyle.Continuous
              border.Weight = SpreadsheetGear.BorderWeight.Thin
              border.Color = SpreadsheetGear.Colors.Blue
            
              // セル B2 から C3 の背景を青に設定
              SpreadsheetGear.IInterior interior = cells["B2:C3"].Interior;
              interior.Color = SpreadsheetGear.Colors.Blue;

              // セル B6 から C7 の背景を赤と黄色のパターンに設定
              interior = cells["B6:C7"].Interior;
              interior.Color = SpreadsheetGear.Colors.Red;
              interior.Pattern = SpreadsheetGear.Pattern.Gray16;
              interior.PatternColor = SpreadsheetGear.Colors.Yellow;
            
              ' セル B2 から C3 の背景を青に設定
              Dim interior As SpreadsheetGear.IInterior = cells("B2:C3").Interior
              interior.Color = SpreadsheetGear.Colors.Blue

              ' セル B6 から C7 の背景を赤と黄色のパターンに設定
              interior = cells("B6:C7").Interior
              interior.Color = SpreadsheetGear.Colors.Red
              interior.Pattern = SpreadsheetGear.Pattern.Gray16
              interior.PatternColor = SpreadsheetGear.Colors.Yellow
            
              // シートの保護をいったん解除
              worksheet.ProtectContents = false;

              // セル A1 のロックを解除、セル A2 のロックを設定
              cells["A1"].Locked = false;
              cells["A2"].Locked = true;

              // シートの保護を有効にする
              worksheet.ProtectContents = true;
            
              ' シートの保護をいったん解除
              worksheet.ProtectContents = False

              ' セル A1 のロックを解除、セル A2 のロックを設定
              cells("A1").Locked = False
              cells("A2").Locked = True

              ' シートの保護を有効にする
              worksheet.ProtectContents = True
            
              // セル A1 にコメントを挿入
              SpreadsheetGear.IComment comment = cells["A1"].AddComment("追加されたコメント 1");
              comment.Shape.TextFrame.Characters.Font.Bold = false;
              comment.Visible = true;

              // セル A2 にコメントを挿入
              comment = cells["A2"].AddComment("追加されたコメント 2");
              comment.Shape.TextFrame.Characters.Font.Bold = true;
              comment.Visible = false;

              // セル A2 のコメントを削除する場合
              cells["A2"].ClearComments();
            
              ' セル A1 にコメントを追加
              Dim comment As SpreadsheetGear.IComment = cells("A1").AddComment("追加されたコメント 1")
              comment.Shape.TextFrame.Characters.Font.Bold = False
              comment.Visible = True

              ' セル A2 にコメントを追加
              comment = cells("A2").AddComment("追加されたコメント 2")
              comment.Shape.TextFrame.Characters.Font.Bold = True
              comment.Visible = False

              ' セル A2 のコメントを削除する場合
              cells("A2").ClearComments()
            
              // セル A1 から F10 を対象
              SpreadsheetGear.IRange range = cells["A1:F10"];

              // 対象セル範囲にサンプル値を設定
              range.Formula = "=RAND() * 10000";
              range.NumberFormat = @"¥#,##0_);(¥#,##0)";

              // セル範囲の条件付き書式用のコレクションを参照
              SpreadsheetGear.IFormatConditions conditions = range.FormatConditions;

              // 既存の条件付き書式をクリア
              conditions.Delete();

              // 値が 8000 以下の場合の条件付き書式を設定
              SpreadsheetGear.IFormatCondition condition = conditions.Add(
                      SpreadsheetGear.FormatConditionType.CellValue,
                      SpreadsheetGear.FormatConditionOperator.LessEqual,
                      "8000", null);

              // フォントのスタイル、色、背景色を設定
              condition.Font.Bold = false;
              condition.Font.Color = SpreadsheetGear.Colors.White;
              condition.Interior.Color = SpreadsheetGear.Colors.DarkSlateBlue;

              // 値が 8000 を超える場合の条件付き書式を設定
              condition = conditions.Add(
                      SpreadsheetGear.FormatConditionType.CellValue,
                      SpreadsheetGear.FormatConditionOperator.Greater,
                      "8000", null);

              // フォントのスタイル、色、背景色を設定
              condition.Font.Bold = true;
              condition.Font.Italic = true;
              condition.Font.Color = SpreadsheetGear.Colors.White;
              condition.Interior.Color = SpreadsheetGear.Colors.Maroon;
            
              ' セル A1 から F10 を対象
              Dim range As SpreadsheetGear.IRange = cells("A1:F10")

              ' 対象セル範囲にサンプル値を設定
              range.Formula = "=RAND() * 10000"
              range.NumberFormat = "¥#,##0_);(¥#,##0)"

              ' セル範囲の条件付き書式用のコレクションを参照
              Dim conditions As SpreadsheetGear.IFormatConditions = range.FormatConditions

              ' 既存の条件付き書式をクリア
              conditions.Delete()

              ' 値が 8000 以下の場合の条件付き書式を設定
              Dim condition As SpreadsheetGear.IFormatCondition = conditions.Add(
                            SpreadsheetGear.FormatConditionType.CellValue,
                            SpreadsheetGear.FormatConditionOperator.LessEqual,
                            "8000", Nothing)

              ' フォントのスタイル、色、背景色を設定
              condition.Font.Bold = False
              condition.Font.Color = SpreadsheetGear.Colors.White
              condition.Interior.Color = SpreadsheetGear.Colors.DarkSlateBlue

              ' 値が 8000 を超える場合の条件付き書式を設定
              condition = conditions.Add(
                            SpreadsheetGear.FormatConditionType.CellValue,
                            SpreadsheetGear.FormatConditionOperator.Greater,
                            "8000", Nothing)

              ' フォントのスタイル、色、背景色を設定
              condition.Font.Bold = True
              condition.Font.Italic = True
              condition.Font.Color = SpreadsheetGear.Colors.White
              condition.Interior.Color = SpreadsheetGear.Colors.Maroon
            
              // セル A5 から A7 に入力規則の参照リストを設定
              cells["A5:A7"].Value = new string[,] {{"赤"},{"青"},{"黄"}};

              // セル A1 にドロップダウンの入力規則を設定 (参照リストから設定する場合)
              cells["A1"].Validation.Add(
                        SpreadsheetGear.ValidationType.List,
                        SpreadsheetGear.ValidationAlertStyle.Information,
                        SpreadsheetGear.ValidationOperator.Default, "=A5:A7", null);

              // セル A2 にドロップダウンの入力規則を設定 (コード内で指定する場合)
              cells["A2"].Validation.Add(
                        SpreadsheetGear.ValidationType.List,
                        SpreadsheetGear.ValidationAlertStyle.Warning,
                        SpreadsheetGear.ValidationOperator.Default, "赤,青,黄", null);
            
              ' セル A5 から A7 に入力規則の参照リストを設定
              cells("A5").Formula = "赤"
              cells("A6").Formula = "青"
              cells("A7").Formula = "黄"

              ' セル A1 にドロップダウンの入力規則を設定 (参照リストから設定する場合)
              cells("A1").Validation.Add(
                              SpreadsheetGear.ValidationType.List,
                              SpreadsheetGear.ValidationAlertStyle.Information,
                              SpreadsheetGear.ValidationOperator.Default, "=A5:A7", Nothing)

              ' セル A2 にドロップダウンの入力規則を設定 (コード内で指定する場合)
              cells("A2").Validation.Add(
                              SpreadsheetGear.ValidationType.List,
                              SpreadsheetGear.ValidationAlertStyle.Warning,
                              SpreadsheetGear.ValidationOperator.Default, "赤,青,黄", Nothing)
            
              // コピー元 (rangeFrom)、コピー先 (rangeTo) を定義
              SpreadsheetGear.IRange rangeFrom = cells["A1:A3"];
              SpreadsheetGear.IRange rangeTo   = cells["A5:A7"];

              // セル A1:A3 を A5:A7 にコピー
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                        SpreadsheetGear.PasteOperation.None, false, false);
            
              ' コピー元 (rangeFrom)、コピー先 (rangeTo) を定義
              Dim rangeFrom As SpreadsheetGear.IRange = cells("A1:A3")
              Dim rangeTo As SpreadsheetGear.IRange = cells("A5:A7")

              ' セル A1:A3 を A5:A7 にコピー
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                              SpreadsheetGear.PasteOperation.None, False, False)
            
              ' セル範囲 (A1:C3) の値を配列に格納
              Dim MyArray() As Variant
              MyArray = Range("A1:C3")

              ' 格納したセル範囲の配列を、セル範囲 (A5:C7) にコピー
              Range("A5:C7") = MyArray
            
              // セル範囲 (A1:C3) の値を二次元配列のオブジェクトに格納
              object[,] MyArray;
              MyArray = (object[,])worksheet.Cells["A1:C3"].Value;

              // 格納したセル範囲の配列を、セル範囲 (A5:C7) にコピー
              worksheet.Cells["A5:C7"].Value = MyArray;
            
              ' セル範囲 (A1:C3) の値を配列に格納
              Dim MyArray As Object(,)
              MyArray = CType(worksheet.Cells("A1:C3").Value, Object)

              ' 格納したセル範囲の配列を、セル範囲 (A5:C7) にコピー
              worksheet.Cells("A5:C7").Value = MyArray
            
              // A 列から C 列全体を、E 列から G 列にコピー
              SpreadsheetGear.IRange rangeFrom = cells["A1:C1"].EntireColumn;
              SpreadsheetGear.IRange rangeTo   = cells["E1:G1"].EntireColumn;
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                        SpreadsheetGear.PasteOperation.None, false, false);

              // 1 行目から 3 行目を、5 行目から 7 行目にコピー
              rangeFrom = cells["A1:A3"].EntireRow;
              rangeTo = cells["A5:A7"].EntireRow;
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                        SpreadsheetGear.PasteOperation.None, false, false);
            
              ' A 列から C 列を、E 列から G 列にコピー
              Dim rangeFrom As SpreadsheetGear.IRange = cells("A1:C1").EntireColumn
              Dim rangeTo As SpreadsheetGear.IRange = cells("E1:G1").EntireColumn
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                              SpreadsheetGear.PasteOperation.None, False, False)

              ' 1 行目から 3 行目を、5 行目から 7 行目にコピー
              rangeFrom = cells("A1:A3").EntireRow
              rangeTo = cells("A5:A7").EntireRow
              rangeFrom.Copy(rangeTo, SpreadsheetGear.PasteType.All,
                              SpreadsheetGear.PasteOperation.None, False, False)
            

ページトップへ

2. ワークシートの操作

              // ワークシートの IWorksheetWindowInfo を参照
              SpreadsheetGear.IWorksheetWindowInfo windowInfo = worksheet.WindowInfo;

              // イメージ ファイル名を取得する
              string filename = "sample.gif";

              // ピクセルで図の幅と高さを取得して、ポイントに変換する (AddPicture のコールに使用するため)。
              // 実際の図のサイズを使用する場合でそのサイズを知らない場合のみ、この手順が必要なります。
              // 別のオプションとして、行と列の座標から幅と高さを計算する方法もあります。
              double width;
              double height;
              System.Drawing.Image image = System.Drawing.Image.FromFile(filename);
              using (image)
              {
                  width = image.Width * 72.0 / image.HorizontalResolution;
                  height = image.Height * 72.0 / image.VerticalResolution;
              }

              // 行と列の座標からポイントに変換することで、図の左上の配置を計算する。
              // 行位置と列位置を使用して、行と列の境界間の座標を取得する。
              double left = windowInfo.ColumnToPoints(0.25);
              double top = windowInfo.RowToPoints(1.5);

              // 上記で算出した値を使用して画像を追加
              SpreadsheetGear.Shapes.IShape shape =
                        worksheet.Shapes.AddPicture(filename, left, top, width, height);

              // 画像の輪郭のラインは非表示にする
              shape.Line.Visible = false;
            
              ' ワークシートの IWorksheetWindowInfo を参照
              Dim windowInfo As SpreadsheetGear.IWorksheetWindowInfo = worksheet.WindowInfo

              ' イメージ ファイル名を取得する
              Dim filename As String = "sample.gif"

              ' ピクセルで図の幅と高さを取得して、ポイントに変換する (AddPicture のコールに使用するため)。
              ' 実際の図のサイズを使用する場合でそのサイズを知らない場合のみ、この手順が必要なります。
              ' 別のオプションとして、行と列の座標から幅と高さを計算する方法もあります。
              Dim width As Double
              Dim height As Double
              Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(filename)
              Using (image)
                  width = image.Width * 72.0 / image.HorizontalResolution
                  height = image.Height * 72.0 / image.VerticalResolution
              End Using

              ' 行と列の座標からポイントに変換することで、図の左上の配置を計算する。
              ' 行位置と列位置を使用して、行と列の境界間の座標を取得する。
              Dim left As Double = windowInfo.ColumnToPoints(0.25)
              Dim top As Double = windowInfo.RowToPoints(1.5)

              ' 上記で算出した値を使用して画像を追加
              Dim shape As SpreadsheetGear.Shapes.IShape =
                              worksheet.Shapes.AddPicture(filename, left, top, width, height)

              ' 画像の輪郭のラインは非表示にする
              shape.Line.Visible = False
            
              // ワークシートの IWorksheetWindowInfo を参照
              SpreadsheetGear.IWorksheetWindowInfo windowInfo = worksheet.WindowInfo;

              // 行、列の座標をポイントに変換して、テキストボックスの配置位置を算出する
              double left = windowInfo.ColumnToPoints(0.5);
              double top = windowInfo.RowToPoints(1.5);
              double right = windowInfo.ColumnToPoints(5.5);
              double bottom = windowInfo.RowToPoints(10.5);
              double width = right - left;
              double height = bottom - top;

              // 上記で算出した値を使用してテキストボックスを追加
              SpreadsheetGear.Shapes.IShape shape =
                        worksheet.Shapes.AddTextBox(left, top, width, height);

              // テキストボックスへの参照を定義
              SpreadsheetGear.Shapes.ITextFrame textFrame = shape.TextFrame;
              SpreadsheetGear.ICharacters characters = textFrame.Characters;

              // テキストボックスの値を設定
              characters.Text = "このテキストボックスは¥r¥n¥r¥nサンプル コードで作成しました。";

              // フォントの指定
              SpreadsheetGear.IFont font = characters.Font;
              font.Bold = true;
              font.Name = "MS P明朝";
              font.Size = 12;
            
              ' ワークシートの IWorksheetWindowInfo を参照
              Dim windowInfo As SpreadsheetGear.IWorksheetWindowInfo = worksheet.WindowInfo

              ' 行、列の座標をポイントに変換して、テキストボックスの配置位置を算出する
              Dim left As Double = windowInfo.ColumnToPoints(0.5)
              Dim top As Double = windowInfo.RowToPoints(1.5)
              Dim right As Double = windowInfo.ColumnToPoints(5.5)
              Dim bottom As Double = windowInfo.RowToPoints(10.5)
              Dim width As Double = right - left
              Dim height As Double = bottom - top

              ' 上記で算出した値を使用してテキストボックスを追加
              Dim shape As SpreadsheetGear.Shapes.IShape =
                              worksheet.Shapes.AddTextBox(left, top, width, height)

              ' テキストボックスへの参照を定義
              Dim textFrame As SpreadsheetGear.Shapes.ITextFrame = shape.TextFrame
              Dim characters As SpreadsheetGear.ICharacters = textFrame.Characters

              ' テキストボックスの値を設定
              characters.Text = "このテキストボックスは" +
                              ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf +
                              "サンプル コードで作成しました。"

              ' フォントの指定
              Dim font As SpreadsheetGear.IFont = characters.Font
              font.Bold = True
              font.Name = "MS P明朝"
              font.Size = 12
            
              // セルに値を設定
              cells["A1"].Formula = "ワークシートのパスワード保護サンプル";

              // ワークシートをパスワードで保護 (パスワード: password)
              worksheet.Protect("password");

              // ワークシートの保護を解除する場合
              worksheet.Unprotect("password");

              // xlsx 形式で出力
              workbook.SaveAs(@"c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook);
            
              ' セルに値を設定
              cells("A1").Formula = "ワークシートのパスワード保護サンプル"

              ' ワークシートをパスワードで保護 (パスワード: password)
              worksheet.Protect("password")

              ' ワークシートの保護を解除する場合
              worksheet.Unprotect("password")

              ' xlsx 形式で出力
              workbook.SaveAs("c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook)
            
              // ワークブック内の最初のシートをコピー元とする
              SpreadsheetGear.IWorksheet worksheet1 = workbook.Worksheets[0];

              // 上記のワークシートをワークブックの最後尾にコピーする
              SpreadsheetGear.IWorksheet worksheet2 =
                        (SpreadsheetGear.IWorksheet)worksheet1.CopyAfter(
                            workbook.Worksheets[workbook.Worksheets.Count - 1]);

              // コピーしたワークシートの名前を設定
              worksheet2.Name = "Sheet2";

              // xlsx 形式で出力
              workbook.SaveAs(@"c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook);
            
              ' ワークブック内の最初のシートをコピー元とする
              Dim worksheet1 As SpreadsheetGear.IWorksheet = workbook.Worksheets(0)

              ' 上記のワークシートをワークブックの最後尾にコピーする
              Dim worksheet2 As SpreadsheetGear.IWorksheet =
                              worksheet1.CopyAfter(workbook.Worksheets(workbook.Worksheets.Count - 1))

              ' コピーしたワークシートの名前を設定
              worksheet2.Name = "Sheet2"

              ' xlsx 形式で出力
              workbook.SaveAs("c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook)
            

ページトップへ

3. ワークブックの操作

              // ワークブックセットの参照
              SpreadsheetGear.IWorkbookSet workbookSet = SpreadsheetGear.Factory.GetWorkbookSet();

              // パスワード (password) を指定してワークブック (c:¥input.xlsx) を読み込む
              SpreadsheetGear.IWorkbook workbook = workbookSet.Workbooks.Open(@"c:¥input.xlsx", "password");

              // セル A1 に値を設定
              workbook.Worksheets[0].Cells["A1"].Formula = "パスワード保護ファイルの読み書きテスト";

              // 新しいパスワード (password2) を設定して書き出す
              workbook.SaveAs(@"c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook, "password2");
            
              ' ワークブックセットの参照
              Dim workbookSet As SpreadsheetGear.IWorkbookSet = SpreadsheetGear.Factory.GetWorkbookSet()

              ' パスワード (password) を指定してワークブック (c:¥input.xlsx) を読み込む
              Dim workbook As SpreadsheetGear.IWorkbook = workbookSet.Workbooks.Open("c:¥input.xlsx", "password")

              ' セル A1 に値を設定
              workbook.Worksheets(0).Cells("A1").Formula = "パスワード保護ファイルの読み書きテスト"

              ' 新しいパスワード (password2) を設定して書き出す
              workbook.SaveAs("c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook, "password2")
            
              // ワークブックセットの参照
              SpreadsheetGear.IWorkbookSet workbookSet = SpreadsheetGear.Factory.GetWorkbookSet();

              // コピー元、コピー先のワークブック (c:¥copyFrom.xlsx、c:¥copyTo.xlsx) を読み込む
              SpreadsheetGear.IWorkbook workbookFrom = workbookSet.Workbooks.Open(@"c:¥copyFrom.xlsx");
              SpreadsheetGear.IWorkbook workbookTo = workbookSet.Workbooks.Open(@"c:¥copyTo.xlsx");

              // コピー元 (c:¥copyFrom.xlsx) を最初のワークシート
              // コピー先 (c:¥copyTo.xlsx) を最後のワークシートとする
              SpreadsheetGear.IWorksheet worksheetFrom =
                        workbookFrom.Worksheets[0];
              SpreadsheetGear.IWorksheet worksheetTo =
                        workbookTo.Worksheets[workbookTo.Worksheets.Count - 1];

              // コピー処理の実行とコピーされたシート名の変更
              SpreadsheetGear.IWorksheet worksheetCopy =
                        (SpreadsheetGear.IWorksheet)worksheetFrom.CopyAfter(worksheetTo);
              worksheetCopy.Name = "コピーされたシート";

              // コピー先のワークブックを output.xlsx として出力
              workbookTo.SaveAs(@"c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook);
            
              ' ワークブックセットの参照
              Dim workbookSet As SpreadsheetGear.IWorkbookSet = SpreadsheetGear.Factory.GetWorkbookSet()

              ' コピー元、コピー先のワークブック (c:¥copyFrom.xlsx、c:¥copyTo.xlsx) を読み込む
              Dim workbookFrom As SpreadsheetGear.IWorkbook =
                              workbookSet.Workbooks.Open("c:¥copyFrom.xlsx")
              Dim workbookTo As SpreadsheetGear.IWorkbook =
                              workbookSet.Workbooks.Open("c:¥copyTo.xlsx")

              ' コピー元 (c:¥copyFrom.xlsx) を最初のワークシート
              ' コピー先 (c:¥copyTo.xlsx) を最後のワークシートとする
              Dim worksheetFrom As SpreadsheetGear.IWorksheet =
                              workbookFrom.Worksheets(0)
              Dim worksheetTo As SpreadsheetGear.IWorksheet =
                              workbookTo.Worksheets(workbookTo.Worksheets.Count - 1)

              ' コピー処理の実行とコピーされたシート名の変更
              Dim worksheetCopy As SpreadsheetGear.IWorksheet =
                              worksheetFrom.CopyAfter(worksheetTo)
              worksheetCopy.Name = "コピーされたシート"

              ' コピー先のワークブックを output.xlsx として出力
              workbookTo.SaveAs("c:¥output.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook)
            

ページトップへ

4. その他の操作

              // workbookView コントロールをロック (必須)
              workbookView.GetLock();

              // ワークブックセットの参照
              SpreadsheetGear.IWorkbookSet workbookSet = SpreadsheetGear.Factory.GetWorkbookSet();

              // ワークブック (c:¥input.xlsx) を読み込む
              SpreadsheetGear.IWorkbook workbook = workbookSet.Workbooks.Open(@"c:¥input.xlsx");
              SpreadsheetGear.IWorksheet worksheet = workbook.Worksheets[0];
              SpreadsheetGear.IRange cells = worksheet.Cells;

              // セル A1 に値を設定
              workbook.Worksheets[0].Cells["A1"].Formula = "workbookView 読み込みテスト";

              // workbookView に表示する
              workbookView.ActiveWorkbook = workbook;

              // workbookView コントロールを解除 (必須)
              workbookView.ReleaseLock();
            
              ' workbookView コントロールをロック (必須)
              WorkbookView.GetLock()

              ' ワークブックセットの参照
              Dim workbookSet As SpreadsheetGear.IWorkbookSet = SpreadsheetGear.Factory.GetWorkbookSet()

              ' ワークブック (c:¥input.xlsx) を読み込む
              Dim workbook As SpreadsheetGear.IWorkbook = workbookSet.Workbooks.Open("c:¥input.xlsx")
              Dim worksheet As SpreadsheetGear.IWorksheet = workbook.Worksheets(0)
              Dim cells As SpreadsheetGear.IRange = worksheet.Cells

              ' セル A1 に値を設定
              workbook.Worksheets(0).Cells("A1").Formula = "workbookView 読み込みテスト"

              ' workbookView に表示する
              WorkbookView.ActiveWorkbook = workbook

              ' workbookView コントロールを解除 (必須)
              WorkbookView.ReleaseLock()
            


ページトップへ