Excel 文書は簡単に印刷できますが、特別な印刷要件がある場合は少し複雑になることがあります。たとえば、シートの選択範囲のみを印刷する、各ページにヘッダー行を繰り返す、またはワークシートを 1 ページに収めるなどです。この記事では、Spire.XLS for .NET を使用して、C# で Excel 文書の印刷オプションを設定する方法と、Excel 文書をプリンターに送信する方法について説明します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
C# で Excel 文書の印刷オプションを設定する
Excel ワークシートのページ設定は、ワークシートの印刷方法を制御するためのオプションを提供します。これには、コメントの印刷の有無、グリッドラインの印刷、印刷するセル範囲の指定が含まれます。Spire.XLS は、これらの設定を管理するための PageSetup オブジェクトを提供します。以下は、Spire.XLS for .NET を使用して PageSetup を通じて Excel の印刷オプションを設定する手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- Workbook.Worksheets[index] プロパティを使用して特定のワークシートを取得します。
- Worksheet.PageSetup プロパティを通じて PageSetup オブジェクトを取得します。
- PageSetup オブジェクトのプロパティを使用して、ページの余白、印刷範囲、印刷タイトル行、印刷品質などを設定します。
- Workbook.SaveToFile() メソッドを使用してワークブックを保存します。
- C#
using Spire.Xls;
namespace PrintOptions
{
class Program
{
static void Main(string[] args)
{
// ワークブックを作成
Workbook workbook = new Workbook();
// Excel ドキュメントをロード
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet worksheet = workbook.Worksheets[0];
// 最初のワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = worksheet.PageSetup;
// ページの余白を設定
pageSetup.TopMargin = 0.3;
pageSetup.BottomMargin = 0.3;
pageSetup.LeftMargin = 0.3;
pageSetup.RightMargin = 0.3;
// 印刷範囲を指定
pageSetup.PrintArea = "A1:D10";
// タイトル行を指定
pageSetup.PrintTitleRows = "$1:$2";
// 行/列の見出しを印刷することを許可
pageSetup.IsPrintHeadings = true;
// グリッドラインを印刷することを許可
pageSetup.IsPrintGridlines = true;
// ワークシートに表示されているコメントを印刷することを許可
pageSetup.PrintComments = PrintCommentType.InPlace;
// 印刷品質を設定 (dpi)
pageSetup.PrintQuality = 300;
// 白黒モードでワークシートを印刷することを許可
pageSetup.BlackAndWhite = true;
// 印刷順序を設定
pageSetup.Order = OrderType.OverThenDown;
// ワークシートを1ページに収める
pageSetup.IsFitToPage = true;
// ワークブックを保存
workbook.SaveToFile("output/Excelページ印刷設定.xlsx");
workbook.Dispose();
}
}
}
C# で Excel 文書を印刷ダイアログで印刷する
印刷ダイアログボックスは、特定の印刷ジョブのオプションを選択するためにユーザーに提供されます。たとえば、ユーザーは使用するプリンターを指定できます。以下は、Spire.XLS for .NET を使用して Excel 文書を印刷ダイアログに送信する手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- PrintDialog オブジェクトを作成します。
- PrintDialog オブジェクトのプロパティを使用してプリンター設定を指定します。
- ワークブックに印刷ダイアログを適用します。
- Workbook.PrintDocument プロパティを通じてワークブックから PrintDocument オブジェクトを取得します。
- 印刷ダイアログを呼び出し、PrintDocument.Print() メソッドを使用して印刷を開始します。
- C#
using System;
using Spire.Xls;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintExcelUsingPrintDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// ワークブックオブジェクトを作成
Workbook workbook = new Workbook();
// Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx");
// ワークシートを1ページに収める
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// PrintDialogオブジェクトを作成
PrintDialog dialog = new PrintDialog();
// プリンタ設定を指定
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
dialog.AllowSelection = true;
dialog.UseEXDialog = true;
dialog.PrinterSettings.Duplex = Duplex.Simplex;
// ダイアログをワークブックに適用
workbook.PrintDialog = dialog;
// ワークブックに基づいてPrintDocumentオブジェクトを作成
PrintDocument printDocument = workbook.PrintDocument;
// 印刷ダイアログを表示
if (dialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}
}
}
C# で Excel 文書をサイレント印刷する
印刷ダイアログや印刷プロセスを表示したくない場合は、指定したプリンターに Excel 文書をサイレント印刷できます。以下はその手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
- 印刷プロセスが表示されないように StandardPrintController に印刷コントローラーを設定します。
- Workbook.PrintDocument.PrinterSettings プロパティを使用してワークブックから PrinterSettings オブジェクトを取得します。
- PrinterSettings オブジェクトのプロパティを使用して、プリンター名、両面印刷モード、および印刷ページを指定します。
- Workbook.PrintDocument.Print() メソッドを使用してワークブックを印刷します。
- C#
using Spire.Xls;
using System.Drawing.Printing;
namespace SilentlyPrint
{
class Program
{
static void Main(string[] args)
{
// ワークブックオブジェクトを作成
Workbook workbook = new Workbook();
// Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx");
// ワークシートを1ページに収める
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// 印刷プロセスを表示しないようにStandardPrintControllerを設定
workbook.PrintDocument.PrintController = new StandardPrintController();
// ワークブックからPrinterSettingsを取得
PrinterSettings settings = workbook.PrintDocument.PrinterSettings;
// プリンタ名、両面印刷モード、および印刷ページを指定
settings.PrinterName = "HP LaserJet P1007";
settings.Duplex = Duplex.Simplex;
settings.FromPage = 1;
settings.ToPage = 3;
// ワークブックを印刷
workbook.PrintDocument.Print();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。