MESCIUS SPREAD for Windows Forms 17.0J
印刷ページのヘッダとフッタ

印刷するページに、ヘッダおよびフッタテキストを追加できます。PrintInfoクラスのHeaderおよびFooterプロパティには、特別な制御コマンドを含めることができます。これらのプロパティを使用すると、ページ番号を表す変数や、フォントを指定するための文字列を設定できます。たとえば、「f」の文字で始まる文字列は、フォント関連のコマンドとして処理されます。

下図は、後述のサンプルコードの実行結果を表しています。

ヘッダとフッタの印刷

ヘッダおよびフッタに挿入可能な制御コマンドは、以下のとおりです。

制御文字 完全コマンド 印刷ページのヘッダまたはフッタでの機能
/ / リテラルなスラッシュ記号(/)を挿入します。
/c /c アイテムを中央揃えで配置します。
/cl /cl"n" テキストのフォント色を設定します。nは0から始まる色インデックスであり、0以上の数値を引用符で囲んで指定します。Colorsプロパティを参照してください。
/dl /dl 長い形式の日付を挿入します。
/ds /ds 短い形式の日付を挿入します。
/f /f"n" 以前保存したフォント設定を呼び出します(この表内の/fsを参照)。nは1から始まるインデックスであり、1以上の数値を指定します。(例、/f1)
/fb /fb0 太字フォントタイプを無効にします。
  /fb1 太字フォントタイプを有効にします。
/fi /fi0 斜体フォントタイプを無効にします。
  /fi1 斜体フォントタイプを有効にします。
/fk /fk0 取り消し線を無効にします。
  /fk1 取り消し線を有効にします。
/fn /fn"name" フォントフェイス名を引用符で囲んで指定します。
/fs /fs"n" 再利用できるように、フォント設定を保存します。nは1から始まるフォント設定のインデックスを指定します(この表内の /f を参照)。(例、/fs1)
/fu /fu0 下線を無効にします。
  /fu1 下線を有効にします。
/fz /fz"n" フォントサイズを設定します。
/g /g"n" 画像(イメージ)を挿入します。nは0から始まるイメージのインデックスであり、0以上の数値を引用符で囲んで指定します。Imagesプロパティを参照してください。
/l /l アイテムを左揃えで配置します。「Left」の頭文字として「l」または「L」を指定できます。
/n /n 新しい行を挿入します。
/p /p ページ番号を挿入します。
/pc /pc ページ数(この印刷ジョブの合計ページ数)を挿入します。
/r /r アイテムを右揃えで配置します。
/sn /sn シート名を挿入
/tl /tl 長い形式の時刻を挿入します。
/ts /ts 短い形式の時刻を挿入します。
  • 複数の制御文字を使用する場合、文字間にスペースを入れないでください。制御文字は大文字でも小文字でも指定できますが、ここに掲載しているコマンドおよびサンプルでは、単純化のためにすべて小文字を使用しています。
  • ヘッダおよびフッタの定義(PrintInfoオブジェクトのHeaderおよびFooterプロパティの設定)は、シートを印刷(FpSpreadクラスのPrintSheetメソッドを実行)する前に行います。
  • PrintInfoオブジェクトのColorsプロパティで色を定義している場合、色の一覧からテキスト色を指定できます。
  • PrintInfoオブジェクトのImagesプロパティでイメージを定義している場合、イメージの一覧からヘッダまたはフッタに挿入するイメージを指定できます。
  • ページ番号、および印刷する合計ページ数を含めたテキストを追加できます。
  • フォント設定を保存して、この設定をヘッダまたはフッタで再利用できます。

サンプルコード

次のサンプルコードは、印刷するページにヘッダおよびフッタを設定し、シートを印刷します。

C#
コードのコピー
// PrintInfoオブジェクトを作成し、各プロパティを設定します。
FarPoint.Win.Spread.PrintInfo printset = new FarPoint.Win.Spread.PrintInfo();
printset.Colors = new Color[] {Color.Green, Color.Yellow, Color.Gold, Color.Indigo, Color.Brown};
printset.Images = new Image[] {Image.FromFile("C:\\images\\point.jpg"), Image.FromFile("C:\\images\\logo.gif"), Image.FromFile("C:\\images\\icon.jpg")};
printset.Header = ""/fn\"Book Antiqua\" /fz\"14\" Print job /n ";
printset.Footer = "/g\"1\"/r/cl\"4\"This is page /p of /pc";
// 先頭シートのPrintInfoプロパティを設定します。
fpSpread1.Sheets[0].PrintInfo = printset;
// シートを印刷します。
fpSpread1.PrintSheet(0);
Visual Basic
コードのコピー
' PrintInfoオブジェクトを作成し、各プロパティを設定します。
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.Colors = New Color() {Color.Green, Color.Yellow, Color.Gold, Color.Indigo, Color.Brown}
printset.Images = New Image() {Image.FromFile("D:\images\point.jpg"), Image.FromFile("D:\images\logo.gif"), Image.FromFile("C:\images\icon.jpg")}
printset.Header = "/fn""Book Antiqua"" /fz""14"" Print job /n "
printset.Footer = "/g""1""/r/cl""4""This is page /p of /pc"
' 先頭シートのPrintInfoプロパティを設定します。
FpSpread1.Sheets(0).PrintInfo = printset
' シートを印刷します。
FpSpread1.PrintSheet(0)

SPREAD デザイナの使用

  1. 印刷設定を行うシートのシート タブを選択します。
  2. [ページレイアウト]オプションを選択します。
  3. [印刷タイトル]を選択します。[印刷設定]ダイアログが開きます。
  4. 「ヘッダ/フッタ」タブをクリックします。
  5. 〈ヘッダ〉または〈フッタ〉ラジオ ボタンを選択して、ヘッダまたはフッタ テキストのどちらを設定するかを指定します。
  6. テキスト ボックスに、ヘッダまたはフッタ テキストを入力します。
    このテキスト内には制御文字を使用できます。これには、テキスト ボックスの下の[印刷制御文字]ドロップダウン リスト ボックスから任意の制御文字を選択して、〈追加〉ボタンをクリックします。
  7. 〈OK〉をクリックし、[印刷オプション設定]ダイアログを閉じます。
  8. [ファイル]メニューから[適用して終了]を選択し、変更をコンポーネントに適用して SPREAD デザイナを終了します。

印刷ページごとのヘッダ/フッタ

先頭ページ、奇数ページ、偶数ページに異なるヘッダとフッタを設定するには、PrintInfo クラスの OddAndEvenPagesHeaderFooter プロパティと DifferentFirstPageHeaderFooter プロパティを true に設定します。

SPREAD for Windows Forms では、OddAndEvenPagesHeaderFooter プロパティを true に設定すると、EvenFooterFirstFooterFirstHeader、およびその他のプロパティを使用して、印刷ページごとに異なるヘッダとフッタを設定できます。

次の図は、さまざまな印刷ページにさまざまなページごとの印刷でヘッダとフッタがどのように表示されるかを示します。

次のサンプルコードは、PrintInfo クラスを使用して異なるヘッダとフッタを設定します。

C#
コードのコピー
// 異なるヘッダとフッタを印刷します
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
TestActiveSheet.Cells["A1"].Value = "ページ1";
TestActiveSheet.Cells["A60"].Value = "ページ2";
TestActiveSheet.Cells["A100"].Value = "ページ3";
fpSpread1.ActiveSheet.PrintInfo.Colors = new System.Drawing.Color[] { System.Drawing.Color.Purple };
fpSpread1.ActiveSheet.PrintInfo.FirstColors = new System.Drawing.Color[] { System.Drawing.Color.Blue };
fpSpread1.ActiveSheet.PrintInfo.EvenColors = new System.Drawing.Color[] { System.Drawing.Color.Red };
fpSpread1.ActiveSheet.PrintInfo.Footer = "/l/cl\"0\"OddLeft/cOddCenter/rOddRight";
// 先頭と最後のページに異なるヘッダ/フッタを設定するには、DifferentFirstPageHeaderFooter プロパティを true に設定します
fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = true;
fpSpread1.ActiveSheet.PrintInfo.FirstFooter = "/lFirstLeft/c/cl\"0\"FirstCenter/rFirstRight";
// 奇数ページと偶数ページに異なるヘッダ/フッタを設定するには、OddAndEvenPagesHeaderFooter プロパティを true に設定します
fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = true;
fpSpread1.ActiveSheet.PrintInfo.EvenFooter = "/lEvenLeft/cEvenCenter/r/cl\"0\"EvenRight";
fpSpread1.Sheets[0].PrintInfo.Preview = true;
fpSpread1.Sheets[0].PrintInfo.EnhancePreview = true;
fpSpread1.Sheets[0].PrintInfo.ShowColor = true;
fpSpread1.PrintSheet(0);
VB
コードのコピー
' 異なるヘッダとフッタを印刷します
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
TestActiveSheet.Cells("A1").Value = "ページ1"
TestActiveSheet.Cells("A60").Value = "ページ2"
TestActiveSheet.Cells("A100").Value = "ページ3"
fpSpread1.ActiveSheet.PrintInfo.Colors = New Drawing.Color() {Drawing.Color.Purple}
fpSpread1.ActiveSheet.PrintInfo.FirstColors = New Drawing.Color() {Drawing.Color.Blue}
fpSpread1.ActiveSheet.PrintInfo.EvenColors = New Drawing.Color() {Drawing.Color.Red}
fpSpread1.ActiveSheet.PrintInfo.Footer = "/l/cl""0""OddLeft/cOddCenter/rOddRight"
' 先頭と最後のページに異なるヘッダ/フッタを設定するには、DifferentFirstPageHeaderFooter プロパティを true に設定します
fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = True
fpSpread1.ActiveSheet.PrintInfo.FirstFooter = "/lFirstLeft/c/cl""0""FirstCenter/rFirstRight"
' 奇数ページと偶数ページに異なるヘッダ/フッタを設定するには、OddAndEvenPagesHeaderFooter プロパティを true に設定します
fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = True
fpSpread1.ActiveSheet.PrintInfo.EvenFooter = "/lEvenLeft/cEvenCenter/r/cl""0""EvenRight"
fpSpread1.Sheets(0).PrintInfo.Preview = True
fpSpread1.Sheets(0).PrintInfo.EnhancePreview = True
fpSpread1.Sheets(0).PrintInfo.ShowColor = True
fpSpread1.PrintSheet(0)

また、PageSetup クラスは、OddAndEvenPagesHeaderFooter プロパティと DifferentFirstPageHeaderFooter プロパティもに対応しています。ただし、PageSetup クラスを使用する場合は、このクラスに含まれるプロパティのみを使用することで、ヘッダとフッタの値を設定します。

ヘッダまたはフッタに画像を含む Excel のエクスポート/インポート

SPREAD for Windows Forms では、印刷するページにヘッダとフッタに画像が含まれる場合、 Excel をエクスポート/インポートすることができます。

次の図は、ウォーターマークとして画像を含んだエクスポート後のExcelの印刷プレビューを示しています。

次のサンプルコードは、ヘッダに画像を追加して、Spreadを Excel にエクスポートします。

C#
コードのコピー
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
TestActiveSheet.PageSetup.LeftHeaderPicture.Filename = @"Image.jpg";
TestActiveSheet.PageSetup.LeftHeader = "Left&G";
TestActiveSheet.PageSetup.TopMargin = 1;
TestActiveSheet.PageSetup.LeftHeaderPicture.ColorType = PictureColorType.Watermark;
TestActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = -40;
TestActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 30;
fpSpread1.ActiveSheet.PrintInfo.Preview = true;
fpSpread1.ActiveSheet.PrintInfo.ShowColor = true;
fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = true;
fpSpread1.PrintSheet(fpSpread1.ActiveSheet);
fpSpread1.SaveExcel(@"excel.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
VB
コードのコピー
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
TestActiveSheet.PageSetup.LeftHeaderPicture.Filename = "Image.jpg"
TestActiveSheet.PageSetup.LeftHeader = "Left&G"
TestActiveSheet.PageSetup.TopMargin = 1
TestActiveSheet.PageSetup.LeftHeaderPicture.ColorType = PictureColorType.Watermark
TestActiveSheet.PageSetup.LeftHeaderPicture.CropLeft = -40
TestActiveSheet.PageSetup.LeftHeaderPicture.CropTop = 30
fpSpread1.ActiveSheet.PrintInfo.Preview = True
fpSpread1.ActiveSheet.PrintInfo.ShowColor = True
fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = True
fpSpread1.PrintSheet(fpSpread1.ActiveSheet)
fpSpread1.SaveExcel("excel.xlsx", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat)

ただし、ヘッダまたはフッタに複数の画像がある場合、Excel はヘッダまたはフッタで 1 つの画像のみをサポートするため、最初の画像のみが Excel にエクスポートされます。

次の図は、最初に使用された画像がヘッダに配置されたExcelの印刷プレビューを示しています。

次のサンプルコードは、ヘッダに複数の画像を追加し、SPREADを Excel にエクスポートする方法を示します。

C#
コードのコピー
IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = true;
fpSpread1.ActiveSheet.PrintInfo.Margin.Top = 100;
fpSpread1.ActiveSheet.PrintInfo.EvenImages = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.png"), System.Drawing.Image.FromFile("Image.tiff") };
fpSpread1.ActiveSheet.PrintInfo.EvenHeader = "/l/g\"0\"/g\"1\"EventHeader";
fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = true;
fpSpread1.ActiveSheet.PrintInfo.FirstImages = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.jpg"), System.Drawing.Image.FromFile("Image.ico") };
fpSpread1.ActiveSheet.PrintInfo.FirstHeader = "/l/g\"0\"/g\"1\"FirstHeader";
fpSpread1.ActiveSheet.PrintInfo.Images = new System.Drawing.Image[] { System.Drawing.Image.FromFile("Image.bmp"), System.Drawing.Image.FromFile("Image.jpeg") };
fpSpread1.ActiveSheet.PrintInfo.Header = "/l/g\"0\"/g\"1\"OddHeader";
fpSpread1.ActiveSheet.PrintInfo.Preview = true;
fpSpread1.ActiveSheet.PrintInfo.ShowColor = true;
fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = true;
// fpSpread1.PrintSheet(fpSpread1.ActiveSheet);
fpSpread1.SaveExcel(@"excel_printinfo.xlsx", ExcelSaveFlags.UseOOXMLFormat);
VB
コードのコピー
Dim TestActiveSheet As IWorksheet = fpSpread1.AsWorkbook().ActiveSheet
fpSpread1.ActiveSheet.PrintInfo.OddAndEvenPagesHeaderFooter = True
fpSpread1.ActiveSheet.PrintInfo.Margin.Top = 100
fpSpread1.ActiveSheet.PrintInfo.EvenImages = New Drawing.Image() {Drawing.Image.FromFile("Image.png"), Drawing.Image.FromFile("Image.tiff")}
fpSpread1.ActiveSheet.PrintInfo.EvenHeader = "/l/g""0""/g""1""EventHeader"
fpSpread1.ActiveSheet.PrintInfo.DifferentFirstPageHeaderFooter = True
fpSpread1.ActiveSheet.PrintInfo.FirstImages = New Drawing.Image() {Drawing.Image.FromFile("Image.jpg"), Drawing.Image.FromFile("Image.ico")}
fpSpread1.ActiveSheet.PrintInfo.FirstHeader = "/l/g""0""/g""1""FirstHeader"
fpSpread1.ActiveSheet.PrintInfo.Images = New Drawing.Image() {Drawing.Image.FromFile("Image.bmp"), Drawing.Image.FromFile("Image.jpeg")}
fpSpread1.ActiveSheet.PrintInfo.Header = "/l/g""0""/g""1""OddHeader"
fpSpread1.ActiveSheet.PrintInfo.Preview = True
fpSpread1.ActiveSheet.PrintInfo.ShowColor = True
fpSpread1.ActiveSheet.PrintInfo.EnhancePreview = True
' fpSpread1.PrintSheet(fpSpread1.ActiveSheet);
fpSpread1.SaveExcel("excel_printinfo.xlsx", ExcelSaveFlags.UseOOXMLFormat)
参照

 

 


© MESCIUS inc. All rights reserved.