サンプル コード
- 日本のお客様からよく寄せられる 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. セルの操作
1-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"1-2. セルの書式設定 (配置) を指定する
// 横位置を [左詰め]に設定 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.Center1-3. セルの書式設定 (結合) を指定する
// セル 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()1-4. セルの書式設定 (フォント) を指定する
// シート全体 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.Red1-5. セルの書式設定 (罫線) を指定する
// セル 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.Blue1-6. セルの書式設定 (塗りつぶし) を指定する
// セル 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.Yellow1-7. セルの書式設定 (保護) を指定する
// シートの保護をいったん解除 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 = True1-8. セルのコメントを操作する
// セル 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()1-9. 条件付き書式を指定する
// セル 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.Maroon1-10. セルの入力規則 (リスト) を指定する
// セル 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)1-11. セルをコピーする
// コピー元 (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)1-12. セルをコピーする (配列を使用)
' セル範囲 (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 = MyArray1-13. 行、列全体をコピーする
// 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. ワークシートの操作
2-1. ワークシートに画像を追加する
// ワークシートの 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 = False2-2. ワークシートにテキストボックスを追加する
// ワークシートの 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 = 122-3. ワークシートのパスワード保護を設定、解除する
// セルに値を設定 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)2-4. 同一ワークブック内でワークシートをコピーする
// ワークブック内の最初のシートをコピー元とする 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. ワークブックの操作
3-1. パスワード付きワークブックを読み書きする
// ワークブックセットの参照 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")3-2. 異なるワークブック間でワークシートをコピーする
// ワークブックセットの参照 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. その他の操作
4-1. ワークブックを workbookView コントロールに表示する
// 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()