@emph{list} of values. This allows for more complex possibilities.)
Alternatively you can use the @code{!} modifier of @code{ses-range} to
-remove blank cells which allows to use @code{+} instead of
-@code{ses+}:
+remove blank cells from the returned list, which allows to use
+@code{+} instead of @code{ses+}:
@lisp
(apply '+ (ses-range A2 A5 !))
@end table
When a printer function signals an error, the fallback printer
-@samp{"%S"} is substituted. This is useful when your column printer
+@findex ses-prin1
+@code{ses-prin1} is substituted. This is useful when your column printer
is numeric-only and you use a string as a cell value. Note that the
standard default printer is @samp{"%.7g"} which is numeric-only, so cells
that are empty of contain strings will use the fallback printer.
(cond
((functionp printer) printer)
((stringp printer)
- `(lambda (x) (format ,printer x)))
+ `(lambda (x)
+ (if (null x) ""
+ (format ,printer x))))
((stringp (car-safe printer))
`(lambda (x)
- (setq ses-call-printer-return t)
- (format ,(car printer) x)))
+ (if (null x) ""
+ (setq ses-call-printer-return t)
+ (format ,(car printer) x))))
(t (error "Invalid printer %S" printer))))
(defun ses--local-printer (name def)