writeexcel 0.6.14 → 0.6.15
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +3 -0
- data/VERSION +1 -1
- data/lib/writeexcel/worksheet.rb +64 -32
- data/writeexcel.gemspec +2 -2
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -76,6 +76,9 @@ You must save source file in UTF8 and run ruby with -Ku option or set $KCODE='u'
|
|
76
76
|
when use urf8 string data.
|
77
77
|
|
78
78
|
== Recent Changes
|
79
|
+
v0.6.15
|
80
|
+
* add Worksheet#merge_range_with_date_time : write datetime string to merged cells
|
81
|
+
|
79
82
|
v0.6.14
|
80
83
|
* Buf fix Issues 20. If more than 10 sheets, sheet reference mix up
|
81
84
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.15
|
data/lib/writeexcel/worksheet.rb
CHANGED
@@ -959,43 +959,39 @@ class Worksheet < BIFFWriter
|
|
959
959
|
format = args[5]
|
960
960
|
encoding = args[6] ? 1 : 0
|
961
961
|
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
format.set_merge_range
|
962
|
+
merge_range_core(rwFirst, colFirst, rwLast, colLast, string, format, encoding) do |rwFirst, colFirst, string, format, encoding|
|
963
|
+
if encoding != 0
|
964
|
+
write_utf16be_string(rwFirst, colFirst, string, format)
|
965
|
+
else
|
966
|
+
write(rwFirst, colFirst, string, format)
|
967
|
+
end
|
968
|
+
end
|
969
|
+
end
|
971
970
|
|
972
|
-
|
973
|
-
|
974
|
-
|
971
|
+
#
|
972
|
+
# :call-seq:
|
973
|
+
# merge_range_with_date_time(first_row, first_col, last_row, last_col, token, format)
|
974
|
+
#
|
975
|
+
# Write to meged cells, a datetime string in ISO8601 "yyyy-mm-ddThh:mm:ss.ss" format as a
|
976
|
+
# number representing an Excel date. format is optional.
|
977
|
+
#
|
978
|
+
def merge_range_with_date_time(*args)
|
979
|
+
# Check for a cell reference in A1 notation and substitute row and column
|
980
|
+
args = row_col_notation(args)
|
975
981
|
|
976
|
-
|
977
|
-
|
978
|
-
colFirst, colLast = colLast, colFirst if colFirst > colLast
|
982
|
+
raise "Incorrect number of arguments" if args.size != 6 and args.size != 7
|
983
|
+
raise "Format argument is not a format object" unless args[5].respond_to?(:xf_index)
|
979
984
|
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
985
|
+
rwFirst = args[0]
|
986
|
+
colFirst = args[1]
|
987
|
+
rwLast = args[2]
|
988
|
+
colLast = args[3]
|
989
|
+
string = args[4]
|
990
|
+
format = args[5]
|
986
991
|
|
987
|
-
|
988
|
-
|
989
|
-
(colFirst .. colLast).each do |col|
|
990
|
-
next if row == rwFirst and col == colFirst
|
991
|
-
write_blank(row, col, format)
|
992
|
-
end
|
992
|
+
merge_range_core(rwFirst, colFirst, rwLast, colLast, string, format, encoding) do |rwFirst, colFirst, string, format, nil|
|
993
|
+
write_date_time(rwFirst, colFirst, string, format)
|
993
994
|
end
|
994
|
-
|
995
|
-
merge_cells(rwFirst, colFirst, rwLast, colLast)
|
996
|
-
|
997
|
-
# Temp code to prevent merged formats in non-merged cells.
|
998
|
-
format.used_merge = 1
|
999
995
|
end
|
1000
996
|
|
1001
997
|
#
|
@@ -4702,6 +4698,42 @@ class Worksheet < BIFFWriter
|
|
4702
4698
|
end
|
4703
4699
|
end
|
4704
4700
|
|
4701
|
+
def merge_range_core(rwFirst, colFirst, rwLast, colLast, string, format, encoding)
|
4702
|
+
# Temp code to prevent merged formats in non-merged cells.
|
4703
|
+
error = "Error: refer to merge_range() in the documentation. " +
|
4704
|
+
"Can't use previously non-merged format in merged cells"
|
4705
|
+
|
4706
|
+
raise error if format.used_merge == -1
|
4707
|
+
format.used_merge = 0 # Until the end of this function.
|
4708
|
+
|
4709
|
+
# Set the merge_range property of the format object. For BIFF8+.
|
4710
|
+
format.set_merge_range
|
4711
|
+
|
4712
|
+
# Excel doesn't allow a single cell to be merged
|
4713
|
+
raise "Can't merge single cell" if rwFirst == rwLast and
|
4714
|
+
colFirst == colLast
|
4715
|
+
|
4716
|
+
# Swap last row/col with first row/col as necessary
|
4717
|
+
rwFirst, rwLast = rwLast, rwFirst if rwFirst > rwLast
|
4718
|
+
colFirst, colLast = colLast, colFirst if colFirst > colLast
|
4719
|
+
|
4720
|
+
# Write the first cell
|
4721
|
+
yield(rwFirst, colFirst, string, format, encoding)
|
4722
|
+
|
4723
|
+
# Pad out the rest of the area with formatted blank cells.
|
4724
|
+
(rwFirst .. rwLast).each do |row|
|
4725
|
+
(colFirst .. colLast).each do |col|
|
4726
|
+
next if row == rwFirst and col == colFirst
|
4727
|
+
write_blank(row, col, format)
|
4728
|
+
end
|
4729
|
+
end
|
4730
|
+
|
4731
|
+
merge_cells(rwFirst, colFirst, rwLast, colLast)
|
4732
|
+
|
4733
|
+
# Temp code to prevent merged formats in non-merged cells.
|
4734
|
+
format.used_merge = 1
|
4735
|
+
end
|
4736
|
+
|
4705
4737
|
#
|
4706
4738
|
# Extract the tokens from the filter expression. The tokens are mainly non-
|
4707
4739
|
# whitespace groups. The only tricky part is to extract string tokens that
|
data/writeexcel.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "writeexcel"
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.15"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Hideo NAKAMURA"]
|
12
|
-
s.date = "2012-07-
|
12
|
+
s.date = "2012-07-26"
|
13
13
|
s.description = "Multiple worksheets can be added to a workbook and formatting can be applied to cells. Text, numbers, formulas, hyperlinks and images can be written to the cells."
|
14
14
|
s.email = "cxn03651@msj.biglobe.ne.jp"
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: writeexcel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.15
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Multiple worksheets can be added to a workbook and formatting can be
|
15
15
|
applied to cells. Text, numbers, formulas, hyperlinks and images can be written
|