diff --git a/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java b/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java
index 06d3aa1..5033e8e 100644
--- a/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java
+++ b/poi/src/main/java/org/apache/poi/ss/util/SheetUtil.java
@@ -160,18 +160,20 @@
         double width = -1;
         if (cellType == CellType.STRING) {
             RichTextString rt = cell.getRichStringCellValue();
-            String[] lines = rt.getString().split("\\n");
-            for (String line : lines) {
-                String txt = line + defaultChar;
+            if (rt != null && rt.getString() != null) {
+                String[] lines = rt.getString().split("\\n");
+                for (String line : lines) {
+                    String txt = line + defaultChar;
 
-                AttributedString str = new AttributedString(txt);
-                copyAttributes(font, str, 0, txt.length());
+                    AttributedString str = new AttributedString(txt);
+                    copyAttributes(font, str, 0, txt.length());
 
-                /*if (rt.numFormattingRuns() > 0) {
-                    // TODO: support rich text fragments
-                }*/
+                    /*if (rt.numFormattingRuns() > 0) {
+                        // TODO: support rich text fragments
+                    }*/
 
-                width = getCellWidth(defaultCharWidth, colspan, style, width, str);
+                    width = getCellWidth(defaultCharWidth, colspan, style, width, str);
+                }
             }
         } else {
             String sval = null;
