 (defn get-create-row!
   "liefert ein Row-Objekt - wenn diese Zeile noch nicht existiert, wird sie angelegt"
   [^Sheet sheet row-index]
-  (let [row (get-row sheet row-index)]
+  (let [row (get-row sheet (int row-index))]
     (if (nil? row)
-      (let [new-row (add-row-after-last! sheet)]
-        (loop [new-row new-row]
-            (if (= (.getRowNum new-row) row-index)
-              new-row
-              (recur (add-row-after-last! sheet)))))
-        row)))
+      (.createRow sheet (int row-index))
+      row)))
+
+(defn get-create-next-row!
+ "Liefert die auf aktuelle Zeile folgende Zeile. Wenn diese noch nicht
+existiert, wird diese neu erzeugt (z.B. wenn die aktuelle Zeile
+die letzte des Blattes ist."
+ [^Row row]
+ (get-create-row! (.getSheet row) 
+                  (+ (.getRowNum row) 1)))
 
 (defn delete-row!
   "Loescht eine Tabellenzeile eines Blattes"

      (.createCell r (int i))
      cell)))


;;; ---------------------------------------------------------------------------
;;; Umwandlungsfunktionen

       (catch Exception e (prn "Index existiert nicht"))))

  
(defn get-create-cell!
 "Liefert eine Referenz auf ein 'Cell'-Objekt, das durch die Angaben
  Reihe 'r' und Zellennummer 'i' bestimmt wird. Wenn die Zelle nicht besteht
  wird eine neue angelegt."
