Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Employee onboarding checklist

Give a manager, buddy, and new employee the same first-week plan. Grouped tables keep preparation, day-one work, and the first review easy to scan without mixing their owners.

Start with
Onboarding stages and assigned tasks
Generate
DOCX + PDF
Generated Word example: Employee onboarding checklist
Page 1 · Generated by the example below

How it works

  1. Group tasks by stage

    Represent each stage as a title and an array of task, owner, and status tuples.

  2. Render the same table structure

    A local function creates the stage heading and fills its table. The task data changes while the document structure stays consistent.

  3. Leave an editable working record

    Save the DOCX so the receiving team can update statuses, and use the generated PDF for a printable overview.

The C# source

This is the complete example file used to generate the download. The walkthrough runner creates the output directory and produces the additional previews.

using System.IO;
using OfficeIMO.Word;

namespace OfficeIMO.Examples.Showcase.Workflows;

/// <summary>Builds a printable onboarding checklist with tasks grouped by the employee journey.</summary>
internal static class OnboardingChecklist {
    internal static void Create(string folder) {
        using WordDocument document = WordDocument.Create(Path.Combine(folder, "example.docx"));
        document.Settings.FontFamily = "Carlito";
        document.Settings.FontSize = 11;
        document.AddParagraph("A good first week").Style = WordParagraphStyles.Heading1;
        document.AddParagraph("Employee onboarding | Team: Customer Operations | Buddy: Morgan Chen");
        document.AddParagraph("Use this checklist to agree who prepares each item and record completion.");

        AddStage("Before arrival", new[] {
            ("Equipment and access", "IT", "Ready"),
            ("Welcome schedule", "Manager", "Ready"),
            ("Buddy introduction", "Team buddy", "Planned")
        });
        AddStage("Day one", new[] {
            ("Workspace and safety tour", "Facilities", "Planned"),
            ("Role and expectations", "Manager", "Planned"),
            ("First service walkthrough", "Team buddy", "Planned")
        });
        AddStage("By the end of week one", new[] {
            ("Complete a supported task", "Employee", "Planned"),
            ("Review questions and blockers", "Manager", "Planned")
        });
        foreach (WordParagraph paragraph in document.Paragraphs) {
            paragraph.FontFamily = "Carlito";
            paragraph.FontSize = 11;
            paragraph.LineSpacingAfterPoints = 7;
            if (paragraph.Style == WordParagraphStyles.Heading1) {
                paragraph.FontSize = 26;
                paragraph.Bold = true;
                paragraph.LineSpacingAfterPoints = 12;
            } else if (paragraph.Style == WordParagraphStyles.Heading2) {
                paragraph.FontSize = 15;
                paragraph.Bold = true;
                paragraph.LineSpacingBeforePoints = 12;
                paragraph.LineSpacingAfterPoints = 6;
            }
        }
        foreach (WordTable styledTable in document.Tables) {
            styledTable.SetWidthPercentage(100);
            styledTable.SetColumnWidthsPercentage(50, 25, 25);
            foreach (var row in styledTable.Rows) {
                foreach (var cell in row.Cells) {
                    cell.MarginTopCentimeters = 0.10;
                    cell.MarginBottomCentimeters = 0.10;
                    foreach (var paragraph in cell.Paragraphs) {
                        paragraph.FontFamily = "Carlito";
                        paragraph.FontSize = 11;
                        paragraph.LineSpacingAfterPoints = 3;
                    }
                }
            }
        }
        document.Save();

        void AddStage(string title, (string Task, string Owner, string Status)[] tasks) {
            document.AddParagraph(title).Style = WordParagraphStyles.Heading2;
            WordTable table = document.AddTable(tasks.Length + 1, 3, WordTableStyle.TableGrid);
            string[] headers = { "Task", "Owner", "Status" };
            for (int column = 0; column < 3; column++) {
                table.Rows[0].Cells[column].Paragraphs[0].Text = headers[column];
                table.Rows[0].Cells[column].Paragraphs[0].Bold = true;
                table.Rows[0].Cells[column].ShadingFillColorHex = "E8EEF8";
            }
            for (int row = 0; row < tasks.Length; row++) {
                table.Rows[row + 1].Cells[0].Paragraphs[0].Text = tasks[row].Task;
                table.Rows[row + 1].Cells[1].Paragraphs[0].Text = tasks[row].Owner;
                table.Rows[row + 1].Cells[2].Paragraphs[0].Text = tasks[row].Status;
            }
        }
    }
}
Open the C# source file

Run it from the source checkout

Clone the OfficeIMO repository and run this command from its root with the .NET 10 SDK. The first run restores the example project's dependencies.

dotnet run --project OfficeIMO.Examples -f net10.0 -- --showcase-workflows --showcase-example word-onboarding-checklist

The files are written to OfficeIMO.Examples/bin/Debug/net10.0/Documents/Workflows/word-onboarding-checklist/. To use the example in your application, start with the Word guide and its package setup.

Downloads and scope

What the preview shows

The linked C# example generates this file. The runner reopens and validates the DOCX, exports a PDF, and the preview renders that PDF.

What to keep in mind

Status values are ordinary editable table text. This sample does not implement interactive checkbox controls or an approval workflow.

Word API reference · Artifact hashes and provenance

Continue with another example

Example source

Download source