diff --git a/pytablewriter/style/_cell.py b/pytablewriter/style/_cell.py
index <HASH>..<HASH> 100644
--- a/pytablewriter/style/_cell.py
+++ b/pytablewriter/style/_cell.py
@@ -10,3 +10,10 @@ class Cell:
         self.col = col
         self.value = value
         self.default_style = default_style
+
+    def is_header_row(self) -> bool:
+        """
+        Return |True| if the cell is a header.
+        """
+
+        return self.row < 0
diff --git a/test/test_style.py b/test/test_style.py
index <HASH>..<HASH> 100644
--- a/test/test_style.py
+++ b/test/test_style.py
@@ -2,11 +2,28 @@ import sys
 
 import pytest
 
-from pytablewriter.style import Align, FontSize, FontStyle, FontWeight, Style, ThousandSeparator
+from pytablewriter.style import (
+    Align,
+    Cell,
+    FontSize,
+    FontStyle,
+    FontWeight,
+    Style,
+    ThousandSeparator,
+)
 
 from ._common import print_test_result
 
 
+class Test_Cell_is_header_row:
+    @pytest.mark.parametrize(
+        ["row", "expected"], [[-1, True], [0, False], [sys.maxsize, False]],
+    )
+    def test_normal(self, row, expected):
+        cell = Cell(row=row, col=0, value=None, default_style=None)
+        assert cell.is_header_row() is expected
+
+
 class Test_Style_constructor:
     @pytest.mark.parametrize(
         ["value", "expected"],
Add is_header_row method to Cell class