チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
Excel ファイルでは、ヘッダーとフッターを使用して、ワークシートページの上部と下部にリッチなコンテンツを配置できます。このコンテンツには、ロゴ、会社名、ページ番号、日付、時刻などを含めることができます。この記事では、Spire.XLS for .NET を使用して、Excel のヘッダーやフッターにテキスト、画像、およびフィールド(ページ番号など)を追加する方法を紹介します。
Spire.XLS for .NET では、PageSetup クラスを使用して、Excel のページ設定(ヘッダーやフッターを含む)を操作できます。具体的には、ヘッダーやフッターの左、中央、右のセクションを表す LeftHeader プロパティ、CenterHeader プロパティ、RightHeader プロパティ、LeftFooter プロパティなどが用意されています。ヘッダーやフッターにフィールドを追加したり、テキストに書式を適用したりするには、以下の表に示すスクリプトを使用する必要があります。
スクリプト | 説明 |
&P | 現在のページ番号です |
&N | 総ページ数です |
&D | 現在の日付です |
&T | 現在の時刻です |
&G | 画像です |
&A | ワークシートの名です |
&F | ファイルの名です |
&B | テキストを太字にする |
&I | テキストを斜体にする |
&U | テキストに下線を引く |
&"フォント名" | フォントの名を表す。例えば、&"Arial" |
& + 整数 | フォントサイズを表す。例えば、&12 |
&K + 16進カラーコード | フォントの色を表す。例えば、&FF0000 |
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Spire.XLS for .NET を使用して、既存の Excel ドキュメントのヘッダーに画像と書式設定されたテキストを追加する手順は以下の通りです。
using Spire.Xls;
using System.Drawing;
namespace AddImageAndTextToHeader
{
class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook wb = new Workbook();
// 既存の Excel ファイルを読み込む
wb.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = wb.Worksheets[0];
// 画像を読み込む
Image image = Image.FromFile("logo.png");
// 画像をスケーリング
Bitmap bitmap = new Bitmap(image, new Size(image.Width / 2, image.Height / 2));
// ヘッダーの左セクションに画像を追加
sheet.PageSetup.LeftHeaderImage = bitmap;
sheet.PageSetup.LeftHeader = "&G";
// ヘッダーの右セクションにフォーマットされたテキストを追加
sheet.PageSetup.RightHeader = &"Calibri"&B&10&K4253E2X Information Technology, Inc.
www.xxx.com";
// ファイルを保存
wb.SaveToFile("Header.xlsx", ExcelVersion.Version2016);
wb.Dispose();
}
}
}
Spire.XLS for .NET を使用して、既存の Excel ドキュメントのフッターに現在の日付とページ番号を追加する手順は以下の通りです。
using Spire.Xls;
namespace AddDateAndPageNumberToFooter
{
class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook wb = new Workbook();
// 既存の Excel ファイルを読み込む
wb.LoadFromFile("sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = wb.Worksheets[0];
// フッターの左セクションにページ番号を追加
sheet.PageSetup.LeftFooter = "&\"Calibri\"&B&10&K4253E2ページ &P";
// フッターの右セクションに現在の日付を追加
sheet.PageSetup.RightFooter = "&\"Calibri\"&B&10&K4253E2&D";
// ファイルを保存
wb.SaveToFile("Footer.xlsx", ExcelVersion.Version2016);
wb.Dispose();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
電子文書では透かしを使用して著作権を保護したり、状態を指定したりすることがよくあります。Microsoft Excel には Excel に透かしを追加するための機能はありませんが、ヘッダー画像やワードアートを挿入するなど、透かし効果を実現するための特別な方法を使用することができます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel に透かしを追加する方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
ヘッダー画像を作成するために、DrawWatermarkImage() というカスタムの方法を定義しました。この方法では、文字列(機密、ドラフト、内部使用などの透かしとして表示するテキスト)に基づいてカスタムの画像を生成できます。画像を生成したら、Worksheet.PageSetup.LeftHeaderImage と Worksheet.PageSetup.LeftHeader プロパティを使用して、画像をワークシートのヘッダーのセクションに追加できます。詳細な手順は次のとおりです。
using Spire.Xls;
using System.Drawing;
namespace AddWatermark
{
class Program
{
static void Main(string[] args)
{
//Workbookクラスのインスタンスを初期化し、Excelファイルをロードする
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"Sample.xlsx");
//フォントを作成する
Font font = new Font("Arial", 40);
//テキストを定義する
string watermark = "機密";
//ファイル内のすべてのシートをループする
foreach (Worksheet sheet in workbook.Worksheets)
{
//DrawWatermarkImage()メソッドを使用して、テキストに基づいて画像を作成する
Image imgWtrmrk = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth);
//各シートの左ヘッダーのセクションに画像を追加する
sheet.PageSetup.LeftHeaderImage = imgWtrmrk;
sheet.PageSetup.LeftHeader = "&G";
//シートのビューモードを透かしを見るためのページレイアウトに変更する
sheet.ViewMode = ViewMode.Layout;
}
///結果ファイルを保存する
workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2013);
}
private static Image DrawWatermarkImage(string text, Font font, Color textColor, Color backColor, double height, double width)
{
//指定した幅と高さの画像を作成する
Image img = new Bitmap((int)width, (int)height);
//画像からグラフィックのオブジェクトを作成する
Graphics drawing = Graphics.FromImage(img);
//テキストのサイズを取得する
SizeF textSize = drawing.MeasureString(text, font);
//指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
//ローテーションを適用する
drawing.RotateTransform(-45);
//指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(-((int)width - textSize.Width) / 2, -((int)height - textSize.Height) / 2);
//背景をペイントする
drawing.Clear(backColor);
//テキストのブラシを作成する
Brush textBrush = new SolidBrush(textColor);
//グラフィックの中心にテキストを描画する
drawing.DrawString(text, font, textBrush, ((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
drawing.Save();
return img;
}
}
}
Imports Spire.Xls
Imports System.Drawing
Namespace AddWatermark
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'Workbookクラスのインスタンスを初期化し、Excelファイルをロードする
Dim workbook As Workbook = New Workbook()
workbook.LoadFromFile("Sample.xlsx")
'フォントを作成する
Dim font As Font = New Font("Arial", 40)
'テキストを定義する
Dim watermark = "機密"
'ファイル内のすべてのシートをループする
For Each sheet As Worksheet In workbook.Worksheets
'DrawWatermarkImage()メソッドを呼び出してテキストに基づいて画像を作成する
Dim imgWtrmrk As Image = DrawWatermarkImage(watermark, font, Color.LightCoral, Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth)
'各シートの左ヘッダーのセクションに画像を追加する
sheet.PageSetup.LeftHeaderImage = imgWtrmrk
sheet.PageSetup.LeftHeader = "&G"
'シートのビューモードを透かしを見るためのページレイアウトに変更する
sheet.ViewMode = ViewMode.Layout
Next
'結果ファイルを保存する
workbook.SaveToFile("AddWatermark.xlsx", ExcelVersion.Version2013)
End Sub
Private Shared Function DrawWatermarkImage(ByVal text As String, ByVal font As Font, ByVal textColor As Color, ByVal backColor As Color, ByVal height As Double, ByVal width As Double) As Image
'指定した幅と高さの画像を作成する
Dim img As Image = New Bitmap(width, height)
'画像からグラフィックのオブジェクトを作成する
Dim drawing As Graphics = Graphics.FromImage(img)
'テキストのサイズを取得する
Dim textSize As SizeF = drawing.MeasureString(text, font)
'指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform((CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2)
'ローテーションを適用する
drawing.RotateTransform(-45)
'指定されたトランスレーションをグラフィックの変換マトリックスに前置きして座標系の原点を変更する
drawing.TranslateTransform(-(CInt(width) - textSize.Width) / 2, -(CInt(height) - textSize.Height) / 2)
'背景をペイントする
drawing.Clear(backColor)
'テキストのブラシを作成する
Dim textBrush As Brush = New SolidBrush(textColor)
'グラフィックの中心にテキストを描画する
drawing.DrawString(text, font, textBrush, (CInt(width) - textSize.Width) / 2, (CInt(height) - textSize.Height) / 2)
drawing.Save()
Return img
End Function
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。