Word 文書の表で列の幅を設定することは、文書の可読性と美観を最適化するために重要です。適切な列幅は、長いテキスト行が可読性を妨げるのを防ぎ、特にテキストが密に詰まった表ではその効果が顕著です。Word 文書では、パーセントと固定値の2つのアプローチを提供しています。パーセント値を使用して列幅を設定することで、異なる画面サイズに応じて表を調整し、コンテンツが整然と配置され、読みやすさが向上します。一方、固定値を使用することで、表の構造を正確に制御でき、一貫性とプロフェッショナリズムが確保され、厳格なデータ配置要件や複雑なレイアウトが求められるデザインに適しています。
この記事では、C# プロジェクトで Spire.Doc for .NET を使用して、Word 文書の表の列幅をパーセントまたは固定値に基づいて設定する方法を紹介します。
Spire.Doc for .NET をインストールします
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
C# でパーセントに基づいて列の幅を設定する
Word の表で列幅をパーセント値で設定する際には、まず表の優先幅のタイプをパーセントに設定する必要があります。これは、Table.PreferredWidth = new PreferredWidth(WidthType.Percentage, (short)100) で行います。その後、各列を繰り返し処理し、必要に応じて同じまたは異なるパーセント値を設定します。以下は詳細な手順です。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
- Document.Sections[0] を使用して文書の最初のセクションを取得します。
- Section.Tables[0] を使用してセクション内の最初の表を取得します。
- for ループを使用して、表内のすべての行を繰り返し処理します。
- TableRow.Cells[index].SetCellWidth(value, CellWidthType.Percentage) メソッドを使用して、異なる列のセルに対して列幅をパーセント値で設定します。
- Document.SaveToFile() メソッドを使用して文書を保存します。
- C#
using Spire.Doc;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 新しいDocumentオブジェクトを作成
Document doc = new Document();
// "Sample.docx"という名前のドキュメントを読み込む
doc.LoadFromFile("Sample.docx");
// ドキュメントの最初のセクションを取得
Section section = doc.Sections[0];
// セクション内の最初のテーブルをTable型にキャスト
Table table = (Table)section.Tables[0];
// PreferredWidthオブジェクトを作成し、幅タイプをパーセンテージに設定し、幅の値を100%に設定
PreferredWidth percentageWidth = new PreferredWidth(WidthType.Percentage, (short)100);
// テーブルの推奨幅を上で作成したPreferredWidthオブジェクトに設定
table.PreferredWidth = percentageWidth;
// TableRow型の変数を定義
TableRow tableRow;
// テーブル内のすべての行を繰り返し処理
for (int i = 0; i < table.Rows.Count; i++)
{
// 現在の行を取得
tableRow = table.Rows[i];
// 最初の列のセルの幅を34%に設定し、タイプをパーセンテージに設定
tableRow.Cells[0].SetCellWidth(34, CellWidthType.Percentage);
// 2番目の列のセルの幅を33%に設定し、タイプをパーセンテージに設定
tableRow.Cells[1].SetCellWidth(33, CellWidthType.Percentage);
// 3番目の列のセルの幅を33%に設定し、タイプをパーセンテージに設定
tableRow.Cells[2].SetCellWidth(33, CellWidthType.Percentage);
}
// 修正したドキュメントを保存し、ファイル形式をDocx2016として指定
doc.SaveToFile("output/パーセントで列幅を設定.docx", FileFormat.Docx2016);
// ドキュメントを閉じる
doc.Close();
}
}
}
C# で固定値に基づいて列幅を設定する
Word の表で列幅を固定値で設定する際には、まず表のレイアウトを固定に設定する必要があります。これは、Table.TableFormat.LayoutType = LayoutType.Fixed で行います。その後、各列を繰り返し処理し、必要に応じて同じまたは異なる固定値を設定します。以下は詳細な手順です。
- Document オブジェクトを作成します。
- Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
- Document.Sections[0] を使用して文書の最初のセクションを取得します。
- Section.Tables[0] を使用してセクション内の最初の表を取得します。
- for ループを使用して、表内のすべての行を繰り返し処理します。
- TableRow.Cells[index].SetCellWidth(value, CellWidthType.Point) メソッドを使用して、異なる列のセルに対して列幅を固定値で設定します。ここで、value はポイントで指定したい幅に置き換えます。
- Document.SaveToFile() メソッドを使用して文書を保存します。
- C#
using Spire.Doc;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
// 新しいDocumentオブジェクトを作成
Document doc = new Document();
// ドキュメントを読み込む
doc.LoadFromFile("Sample.docx");
// ドキュメントの最初のセクションを取得
Section section = doc.Sections[0];
// セクション内の最初のテーブルをTable型にキャスト
Table table = (Table)section.Tables[0];
// テーブルレイアウトタイプを固定に設定
table.TableFormat.LayoutType = LayoutType.Fixed;
// テーブルの自動サイズ変更モードを無効に設定
table.TableFormat.IsAutoResized = false;
// 左マージンを取得
float leftMargin = section.PageSetup.Margins.Left;
// 右マージンを取得
float rightMargin = section.PageSetup.Margins.Right;
// 左右のマージンを引いたページ幅を計算
double pageWidth = section.PageSetup.PageSize.Width - leftMargin - rightMargin - 70;
// TableRow型の変数を定義
TableRow tableRow;
// テーブル内のすべての行をループ
for (int i = 0; i < table.Rows.Count; i++)
{
// 現在の行を取得
tableRow = table.Rows[i];
// 最初の列のセルの幅をページ幅の34%に設定
tableRow.Cells[0].SetCellWidth((float)(pageWidth * 0.34), CellWidthType.Point);
// 2番目の列のセルの幅をページ幅の33%に設定
tableRow.Cells[1].SetCellWidth((float)(pageWidth * 0.33), CellWidthType.Point);
// 3番目の列のセルの幅をページ幅の33%に設定
tableRow.Cells[2].SetCellWidth((float)(pageWidth * 0.33), CellWidthType.Point);
}
// 修正したドキュメントを保存し、ファイル形式をDocx2016として指定
doc.SaveToFile("output/固定値で列幅を設定.docx", FileFormat.Docx2016);
// ドキュメントを閉じる
doc.Close();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。