@@ -386,6 +386,7 @@ module WorksheetExt
386
386
def initialize ( struct )
387
387
@is_open = true
388
388
@col_formats = { }
389
+ @last_row_number = -1
389
390
super ( struct )
390
391
end
391
392
@@ -410,16 +411,16 @@ def auto_width=(v)
410
411
411
412
def write_value ( row_number , cell_number , value , format = nil )
412
413
413
- if workbook . constant_memory? && row_number < last_row_number
414
+ if workbook . constant_memory? && row_number < @ last_row_number
414
415
raise ArgumentError , "Can not write to saved row in constant_memory mode (attempted row: #{ row_number } , last saved row: #{ last_row_number } )"
415
416
end
416
417
417
418
if value . is_a? ( Numeric )
418
419
write_number ( row_number , cell_number , value , format )
419
- elsif defined? ( DateTime ) && value . is_a? ( DateTime )
420
- write_datetime ( row_number , cell_number , FastExcel . lxw_datetime ( value ) , format )
421
420
elsif value . is_a? ( Time )
422
- write_datetime ( row_number , cell_number , FastExcel . lxw_time ( value ) , format )
421
+ write_number ( row_number , cell_number , FastExcel . date_num ( value ) , format )
422
+ elsif defined? ( DateTime ) && value . is_a? ( DateTime )
423
+ write_number ( row_number , cell_number , FastExcel . date_num ( value ) , format )
423
424
elsif value . is_a? ( Formula )
424
425
write_formula ( row_number , cell_number , value . fml , format )
425
426
else
@@ -428,7 +429,7 @@ def write_value(row_number, cell_number, value, format = nil)
428
429
add_text_width ( value , format , cell_number ) if auto_width?
429
430
end
430
431
431
- @last_row_number = row_number > last_row_number ? row_number : last_row_number
432
+ @last_row_number = row_number > @ last_row_number ? row_number : @ last_row_number
432
433
end
433
434
434
435
def add_text_width ( value , format , cell_number )
@@ -444,14 +445,14 @@ def add_text_width(value, format, cell_number)
444
445
end
445
446
446
447
if font_size == 0
447
- workbook . default_format . font_size
448
+ font_size = workbook . default_format . font_size
448
449
end
449
450
450
451
font_size = 13 if font_size == nil || font_size == 0
451
452
452
453
font_family = ''
453
454
if format
454
- font_size = format . font_family
455
+ font_family = format . font_family
455
456
end
456
457
457
458
if font_family == ''
@@ -482,11 +483,11 @@ def append_row(values, formats = nil)
482
483
end
483
484
484
485
def last_row_number
485
- defined? ( @last_row_number ) ? @last_row_number : - 1
486
+ @last_row_number
486
487
end
487
488
488
489
def increment_last_row_number!
489
- @last_row_number = last_row_number + 1
490
+ @last_row_number += 1
490
491
end
491
492
492
493
def set_column ( start_col , end_col , width , format = nil )
@@ -531,15 +532,6 @@ def close
531
532
module FormatExt
532
533
include AttributeHelper
533
534
534
- [ :font_size , :underline , :font_script , :rotation , :indent , :pattern , :border ] . each do |prop |
535
- define_method ( prop ) do
536
- self [ prop ]
537
- end
538
- define_method ( "#{ prop } =" ) do |value |
539
- send ( "set_#{ prop } " , value )
540
- end
541
- end
542
-
543
535
[ :bold , :italic , :font_outline , :font_shadow , :hidden , :text_wrap , :font_strikeout , :shrink , :text_justlast ] . each do |prop |
544
536
define_method ( prop ) do
545
537
self [ prop ]
@@ -553,10 +545,6 @@ module FormatExt
553
545
define_method ( prop ) do
554
546
self [ prop ] . to_ptr . read_string
555
547
end
556
-
557
- define_method ( "#{ prop } =" ) do |value |
558
- send ( "set_#{ prop } " , value )
559
- end
560
548
end
561
549
562
550
ALIGN_ENUM = Libxlsxwriter . enum_type ( :format_alignments )
0 commit comments