DioDocs for Excel
DioDocs for Excel
非表示のセル範囲にデータの貼り付けまたは無視
機能 > ワークシート > 範囲の操作 > 非表示のセル範囲にデータの貼り付けまたは無視

DioDocs for Excelでは、非表示セル範囲にクリップボードデータを貼り付けるかどうかを指定できます。オーバーロードされたCopyメソッドのパラメータを使用して、コピーしたデータを貼り付けるコピー先のセル、データを非表示のセル範囲に貼り付けるかどうか、およびさまざまな貼り付けオプションを指定できます。

CopyメソッドのpasteOptionパラメータは、PasteOptionクラスに所属します。このクラスのAllowPasteHiddenRange プロパティをtrueに設定すると、コピーしたデータを非表示のコピー先のセル範囲に貼り付けます。このプロパティをfalseに設定する場合は、非表示のセル範囲が無視されます。 このプロパティのデフォルト値はtrueです。

また、PasteOptionクラスは、さまざまな貼り付けオプションを指定できるPasteTypeプロパティも提供し、PasteType列挙値から値を受け入れます。

以下のテーブルに、PasteType列挙を使用して指定できるさまざまな貼り付けオプションを説明します。

オプション 説明
Default 行の高さと列の幅を除き、コピー先のセル範囲にすべてのデータを貼り付けます。
Values コピー先のセルにセル値のみを貼り付けます。
Formulas 数式の場合は、コピー先のセルに数式を貼り付けます。 ただし、数式以外のセルでは、コピー先のセルにセル値を貼り付けられます。
Formats 書式設定を貼り付けます。
NumberFormats 数値形式を貼り付けます。
RowHeights 行の高さを貼り付けます。
ColumnWidths コピー先のセルに列幅を貼り付けます。

2つの異なる貼り付けオプションを組み合わせることもできます。 たとえば、ワークシートに値と数値形式を同時に貼り付ける場合は、次のいずれかの組み合わせを使用できます。

PasteType.Values | PasteType.NumberFormats 
PasteType.Formulas | PasteType.NumberFormats

次のコードは、非表示のセル範囲にデータを貼り付ける方法と無視する方法を示します。データをコピーして貼り付けるときに、貼り付けのオプションの組み合わせを使用します。

C#
コードのコピー
var workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];

object[,] data = new object[,]{
{"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165},
{"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134},
{"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180},
{"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163},
{"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176},
{"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145}
};

worksheet.Range["A1:F6"].Value = data;
worksheet.Range["A:F"].ColumnWidth = 15;
worksheet.Range["1:1"].Hidden = true;
worksheet.Range["3:3"].Hidden = true;
worksheet.Range["5:5"].Hidden = true;
        
//非表示のセル範囲にデータの貼り付けを無視します
var worksheet2 = workbook.Worksheets.Add();
worksheet.Range["A1:F6"].Copy(worksheet2.Range["A1:F6"], new PasteOption { AllowPasteHiddenRange = false });
       
//非表示のセル範囲にデータを貼り付けます
var worksheet3 = workbook.Worksheets.Add();
worksheet.Range["A1:F6"].Copy(worksheet3.Range["A1:F6"]);

//非表示のセル範囲にデータの貼り付けを無視し、PasteTypeオプションを使用します
var worksheet4 = workbook.Worksheets.Add();
worksheet.Range["A1:F6"].Copy(worksheet4.Range["A1:F6"], new PasteOption { AllowPasteHiddenRange = false, PasteType = PasteType.ColumnWidths | PasteType.Values });

//Excelファイルに保存します
workbook.Save("IgnoreorPasteDataHiddenRange.xlsx");