write_xlsx 0.85.11 → 0.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +43 -0
  3. data/Changes +54 -0
  4. data/LICENSE.txt +1 -1
  5. data/README.md +4 -4
  6. data/examples/chart_combined.rb +3 -1
  7. data/examples/colors.rb +47 -0
  8. data/examples/comments2.rb +1 -1
  9. data/examples/conditional_format.rb +60 -9
  10. data/examples/data_validate.rb +7 -7
  11. data/examples/panes.rb +1 -1
  12. data/examples/tab_colors.rb +1 -1
  13. data/lib/write_xlsx/chart.rb +90 -8
  14. data/lib/write_xlsx/chart/axis.rb +31 -6
  15. data/lib/write_xlsx/chart/series.rb +26 -10
  16. data/lib/write_xlsx/format.rb +5 -1
  17. data/lib/write_xlsx/package/app.rb +12 -0
  18. data/lib/write_xlsx/package/comments.rb +4 -2
  19. data/lib/write_xlsx/package/conditional_format.rb +6 -0
  20. data/lib/write_xlsx/package/core.rb +8 -6
  21. data/lib/write_xlsx/package/table.rb +31 -5
  22. data/lib/write_xlsx/package/xml_writer_simple.rb +3 -2
  23. data/lib/write_xlsx/utility.rb +85 -0
  24. data/lib/write_xlsx/version.rb +1 -1
  25. data/lib/write_xlsx/workbook.rb +27 -17
  26. data/lib/write_xlsx/worksheet.rb +51 -9
  27. data/lib/write_xlsx/worksheet/cell_data.rb +21 -0
  28. data/lib/write_xlsx/worksheet/data_validation.rb +22 -10
  29. data/lib/write_xlsx/worksheet/hyperlink.rb +14 -14
  30. data/test/chart/test_add_series.rb +11 -1
  31. data/test/chart/test_process_names.rb +1 -1
  32. data/test/chart/test_write_a_latin.rb +1 -1
  33. data/test/chart/test_write_auto.rb +1 -1
  34. data/test/chart/test_write_ax_id.rb +1 -1
  35. data/test/chart/test_write_ax_pos.rb +1 -1
  36. data/test/chart/test_write_cross_ax.rb +1 -1
  37. data/test/chart/test_write_crosses.rb +1 -1
  38. data/test/chart/test_write_d_lbls.rb +1 -1
  39. data/test/chart/test_write_format_code.rb +1 -1
  40. data/test/chart/test_write_idx.rb +1 -1
  41. data/test/chart/test_write_label_align.rb +1 -1
  42. data/test/chart/test_write_label_offset.rb +1 -1
  43. data/test/chart/test_write_lang.rb +1 -1
  44. data/test/chart/test_write_layout.rb +1 -1
  45. data/test/chart/test_write_legend.rb +1 -1
  46. data/test/chart/test_write_legend_pos.rb +1 -1
  47. data/test/chart/test_write_major_gridlines.rb +1 -1
  48. data/test/chart/test_write_marker.rb +1 -1
  49. data/test/chart/test_write_marker_size.rb +1 -1
  50. data/test/chart/test_write_marker_value.rb +1 -1
  51. data/test/chart/test_write_num_cache.rb +1 -1
  52. data/test/chart/test_write_number_format.rb +2 -3
  53. data/test/chart/test_write_order.rb +1 -1
  54. data/test/chart/test_write_orientation.rb +1 -1
  55. data/test/chart/test_write_page_margins.rb +1 -1
  56. data/test/chart/test_write_page_setup.rb +1 -1
  57. data/test/chart/test_write_plot_vis_only.rb +1 -1
  58. data/test/chart/test_write_pt.rb +1 -1
  59. data/test/chart/test_write_pt_count.rb +1 -1
  60. data/test/chart/test_write_series_formula.rb +1 -1
  61. data/test/chart/test_write_style.rb +1 -1
  62. data/test/chart/test_write_symbol.rb +1 -1
  63. data/test/chart/test_write_tick_lbl_pos.rb +1 -1
  64. data/test/chart/test_write_v.rb +1 -1
  65. data/test/chartsheet/test_chartsheet01.rb +1 -1
  66. data/test/drawing/test_drawing_chart_01.rb +1 -1
  67. data/test/drawing/test_drawing_image_01.rb +1 -1
  68. data/test/drawing/test_drawing_shape_01.rb +1 -1
  69. data/test/drawing/test_drawing_shape_02.rb +1 -1
  70. data/test/drawing/test_drawing_shape_03.rb +1 -1
  71. data/test/drawing/test_drawing_shape_04.rb +1 -1
  72. data/test/drawing/test_drawing_shape_05.rb +1 -1
  73. data/test/drawing/test_drawing_shape_06.rb +1 -1
  74. data/test/drawing/test_drawing_shape_07.rb +1 -1
  75. data/test/drawing/test_write_a_graphic_frame_locks.rb +1 -1
  76. data/test/drawing/test_write_c_chart.rb +1 -1
  77. data/test/drawing/test_write_c_nv_graphic_frame_pr.rb +1 -1
  78. data/test/drawing/test_write_c_nv_pr.rb +1 -1
  79. data/test/drawing/test_write_col.rb +1 -1
  80. data/test/drawing/test_write_col_off.rb +1 -1
  81. data/test/drawing/test_write_ext.rb +1 -1
  82. data/test/drawing/test_write_pos.rb +1 -1
  83. data/test/drawing/test_write_row.rb +1 -1
  84. data/test/drawing/test_write_row_off.rb +1 -1
  85. data/test/drawing/test_write_xfrm_extension.rb +1 -1
  86. data/test/drawing/test_write_xfrm_offset.rb +1 -1
  87. data/test/helper.rb +2 -2
  88. data/test/package/app/test_app01.rb +1 -1
  89. data/test/package/app/test_app02.rb +1 -1
  90. data/test/package/app/test_app03.rb +1 -1
  91. data/test/package/comments/test_write_text_t.rb +1 -1
  92. data/test/package/content_types/test_content_types.rb +1 -1
  93. data/test/package/content_types/test_write_default.rb +1 -1
  94. data/test/package/content_types/test_write_override.rb +1 -1
  95. data/test/package/core/test_core01.rb +1 -1
  96. data/test/package/core/test_core02.rb +1 -1
  97. data/test/package/relationships/test_relationships.rb +1 -1
  98. data/test/package/relationships/test_sheet_rels.rb +1 -1
  99. data/test/package/shared_strings/test_shared_strings01.rb +1 -1
  100. data/test/package/shared_strings/test_shared_strings02.rb +1 -1
  101. data/test/package/shared_strings/test_write_si.rb +1 -7
  102. data/test/package/styles/test_styles_01.rb +1 -1
  103. data/test/package/styles/test_styles_02.rb +1 -1
  104. data/test/package/styles/test_styles_03.rb +1 -1
  105. data/test/package/styles/test_styles_04.rb +1 -1
  106. data/test/package/styles/test_styles_05.rb +1 -1
  107. data/test/package/styles/test_styles_06.rb +1 -1
  108. data/test/package/styles/test_styles_07.rb +1 -1
  109. data/test/package/styles/test_styles_08.rb +1 -1
  110. data/test/package/styles/test_styles_09.rb +1 -1
  111. data/test/package/table/test_table01.rb +3 -3
  112. data/test/package/table/test_table02.rb +2 -2
  113. data/test/package/table/test_table03.rb +2 -2
  114. data/test/package/table/test_table04.rb +2 -2
  115. data/test/package/table/test_table05.rb +2 -2
  116. data/test/package/table/test_table06.rb +2 -2
  117. data/test/package/table/test_table07.rb +2 -2
  118. data/test/package/table/test_table08.rb +2 -2
  119. data/test/package/table/test_table09.rb +2 -2
  120. data/test/package/table/test_table10.rb +2 -2
  121. data/test/package/table/test_table11.rb +2 -2
  122. data/test/package/table/test_table12.rb +2 -2
  123. data/test/package/table/test_table13.rb +1 -1
  124. data/test/package/table/test_write_auto_filter.rb +1 -1
  125. data/test/package/table/test_write_table_column.rb +1 -1
  126. data/test/package/table/test_write_table_style_info.rb +1 -1
  127. data/test/package/vml/test_write_auto_fill.rb +1 -1
  128. data/test/package/vml/test_write_div.rb +1 -1
  129. data/test/package/vml/test_write_idmap.rb +1 -1
  130. data/test/package/vml/test_write_path.rb +1 -1
  131. data/test/package/vml/test_write_shapelayout.rb +1 -1
  132. data/test/package/vml/test_write_shapetype.rb +1 -1
  133. data/test/package/vml/test_write_stroke.rb +1 -1
  134. data/test/regression/disabled_test_vml04.rb +1 -1
  135. data/test/regression/images/red_208.png +0 -0
  136. data/test/regression/test_array_formula01.rb +1 -1
  137. data/test/regression/test_array_formula02.rb +1 -1
  138. data/test/regression/test_autofilter00.rb +1 -1
  139. data/test/regression/test_autofilter01.rb +1 -1
  140. data/test/regression/test_autofilter02.rb +1 -1
  141. data/test/regression/test_autofilter03.rb +1 -1
  142. data/test/regression/test_autofilter04.rb +1 -1
  143. data/test/regression/test_autofilter05.rb +1 -1
  144. data/test/regression/test_autofilter06.rb +1 -1
  145. data/test/regression/test_autofilter07.rb +1 -1
  146. data/test/regression/test_button01.rb +1 -1
  147. data/test/regression/test_button02.rb +1 -1
  148. data/test/regression/test_button03.rb +1 -1
  149. data/test/regression/test_button04.rb +1 -1
  150. data/test/regression/test_button05.rb +1 -1
  151. data/test/regression/test_button06.rb +1 -1
  152. data/test/regression/test_button07.rb +1 -1
  153. data/test/regression/test_button08.rb +1 -1
  154. data/test/regression/test_button13.rb +1 -1
  155. data/test/regression/test_button14.rb +1 -1
  156. data/test/regression/test_chart_area01.rb +1 -1
  157. data/test/regression/test_chart_area02.rb +1 -1
  158. data/test/regression/test_chart_area03.rb +1 -1
  159. data/test/regression/test_chart_area04.rb +1 -1
  160. data/test/regression/test_chart_axis01.rb +1 -1
  161. data/test/regression/test_chart_axis02.rb +1 -1
  162. data/test/regression/test_chart_axis03.rb +1 -1
  163. data/test/regression/test_chart_axis04.rb +1 -1
  164. data/test/regression/test_chart_axis05.rb +1 -1
  165. data/test/regression/test_chart_axis06.rb +1 -1
  166. data/test/regression/test_chart_axis07.rb +1 -1
  167. data/test/regression/test_chart_axis08.rb +1 -1
  168. data/test/regression/test_chart_axis09.rb +1 -1
  169. data/test/regression/test_chart_axis10.rb +1 -1
  170. data/test/regression/test_chart_axis11.rb +1 -1
  171. data/test/regression/test_chart_axis12.rb +1 -1
  172. data/test/regression/test_chart_axis13.rb +1 -1
  173. data/test/regression/test_chart_axis14.rb +1 -1
  174. data/test/regression/test_chart_axis15.rb +1 -1
  175. data/test/regression/test_chart_axis16.rb +1 -1
  176. data/test/regression/test_chart_axis17.rb +1 -1
  177. data/test/regression/test_chart_axis18.rb +1 -1
  178. data/test/regression/test_chart_axis19.rb +1 -1
  179. data/test/regression/test_chart_axis20.rb +1 -1
  180. data/test/regression/test_chart_axis21.rb +1 -1
  181. data/test/regression/test_chart_axis22.rb +1 -1
  182. data/test/regression/test_chart_axis23.rb +1 -1
  183. data/test/regression/test_chart_axis24.rb +1 -1
  184. data/test/regression/test_chart_axis25.rb +1 -1
  185. data/test/regression/test_chart_axis26.rb +1 -1
  186. data/test/regression/test_chart_axis27.rb +1 -1
  187. data/test/regression/test_chart_axis28.rb +1 -1
  188. data/test/regression/test_chart_axis29.rb +1 -1
  189. data/test/regression/test_chart_axis30.rb +1 -1
  190. data/test/regression/test_chart_axis31.rb +1 -1
  191. data/test/regression/test_chart_axis32.rb +1 -1
  192. data/test/regression/test_chart_axis33.rb +1 -1
  193. data/test/regression/test_chart_axis34.rb +1 -1
  194. data/test/regression/test_chart_axis35.rb +1 -1
  195. data/test/regression/test_chart_axis36.rb +1 -1
  196. data/test/regression/test_chart_axis37.rb +1 -1
  197. data/test/regression/test_chart_axis38.rb +1 -1
  198. data/test/regression/test_chart_axis39.rb +1 -1
  199. data/test/regression/test_chart_axis40.rb +44 -0
  200. data/test/regression/test_chart_axis41.rb +48 -0
  201. data/test/regression/test_chart_bar01.rb +1 -1
  202. data/test/regression/test_chart_bar02.rb +1 -1
  203. data/test/regression/test_chart_bar03.rb +1 -1
  204. data/test/regression/test_chart_bar04.rb +1 -1
  205. data/test/regression/test_chart_bar05.rb +1 -1
  206. data/test/regression/test_chart_bar06.rb +1 -1
  207. data/test/regression/test_chart_bar07.rb +1 -1
  208. data/test/regression/test_chart_bar08.rb +1 -1
  209. data/test/regression/test_chart_bar09.rb +1 -1
  210. data/test/regression/test_chart_bar10.rb +1 -1
  211. data/test/regression/test_chart_bar11.rb +1 -1
  212. data/test/regression/test_chart_bar12.rb +1 -1
  213. data/test/regression/test_chart_bar13.rb +1 -1
  214. data/test/regression/test_chart_bar14.rb +1 -1
  215. data/test/regression/test_chart_bar15.rb +1 -1
  216. data/test/regression/test_chart_bar16.rb +1 -1
  217. data/test/regression/test_chart_bar17.rb +1 -1
  218. data/test/regression/test_chart_bar18.rb +1 -1
  219. data/test/regression/test_chart_bar19.rb +1 -1
  220. data/test/regression/test_chart_bar20.rb +1 -1
  221. data/test/regression/test_chart_bar21.rb +1 -1
  222. data/test/regression/test_chart_bar22.rb +1 -1
  223. data/test/regression/test_chart_bar23.rb +1 -1
  224. data/test/regression/test_chart_bar24.rb +1 -1
  225. data/test/regression/test_chart_blank01.rb +1 -1
  226. data/test/regression/test_chart_blank02.rb +1 -1
  227. data/test/regression/test_chart_blank03.rb +1 -1
  228. data/test/regression/test_chart_blank04.rb +1 -1
  229. data/test/regression/test_chart_blank05.rb +1 -1
  230. data/test/regression/test_chart_blank06.rb +1 -1
  231. data/test/regression/test_chart_chartarea01.rb +1 -1
  232. data/test/regression/test_chart_chartarea02.rb +1 -1
  233. data/test/regression/test_chart_chartarea03.rb +1 -1
  234. data/test/regression/test_chart_chartarea04.rb +1 -1
  235. data/test/regression/test_chart_chartarea05.rb +1 -1
  236. data/test/regression/test_chart_clustered01.rb +1 -1
  237. data/test/regression/test_chart_column01.rb +1 -1
  238. data/test/regression/test_chart_column02.rb +1 -1
  239. data/test/regression/test_chart_column03.rb +1 -1
  240. data/test/regression/test_chart_column04.rb +1 -1
  241. data/test/regression/test_chart_column05.rb +1 -1
  242. data/test/regression/test_chart_column06.rb +1 -1
  243. data/test/regression/test_chart_column07.rb +1 -1
  244. data/test/regression/test_chart_column08.rb +1 -1
  245. data/test/regression/test_chart_column09.rb +1 -1
  246. data/test/regression/test_chart_column10.rb +1 -1
  247. data/test/regression/test_chart_column11.rb +1 -1
  248. data/test/regression/test_chart_column12.rb +1 -1
  249. data/test/regression/test_chart_combined01.rb +1 -1
  250. data/test/regression/test_chart_combined02.rb +1 -1
  251. data/test/regression/test_chart_combined03.rb +1 -1
  252. data/test/regression/test_chart_combined04.rb +1 -1
  253. data/test/regression/test_chart_combined05.rb +1 -1
  254. data/test/regression/test_chart_combined06.rb +1 -1
  255. data/test/regression/test_chart_combined07.rb +1 -1
  256. data/test/regression/test_chart_combined08.rb +1 -1
  257. data/test/regression/test_chart_combined09.rb +50 -0
  258. data/test/regression/test_chart_crossing01.rb +1 -1
  259. data/test/regression/test_chart_crossing02.rb +1 -1
  260. data/test/regression/test_chart_crossing03.rb +1 -1
  261. data/test/regression/test_chart_crossing04.rb +1 -1
  262. data/test/regression/test_chart_data_labels01.rb +1 -1
  263. data/test/regression/test_chart_data_labels02.rb +1 -1
  264. data/test/regression/test_chart_data_labels03.rb +1 -1
  265. data/test/regression/test_chart_data_labels04.rb +1 -1
  266. data/test/regression/test_chart_data_labels05.rb +1 -1
  267. data/test/regression/test_chart_data_labels06.rb +1 -1
  268. data/test/regression/test_chart_data_labels07.rb +1 -1
  269. data/test/regression/test_chart_data_labels08.rb +1 -1
  270. data/test/regression/test_chart_data_labels09.rb +1 -1
  271. data/test/regression/test_chart_data_labels10.rb +1 -1
  272. data/test/regression/test_chart_data_labels11.rb +1 -1
  273. data/test/regression/test_chart_data_labels12.rb +1 -1
  274. data/test/regression/test_chart_data_labels13.rb +1 -1
  275. data/test/regression/test_chart_data_labels14.rb +1 -1
  276. data/test/regression/test_chart_data_labels15.rb +1 -1
  277. data/test/regression/test_chart_data_labels16.rb +1 -1
  278. data/test/regression/test_chart_data_labels17.rb +1 -1
  279. data/test/regression/test_chart_data_labels18.rb +1 -1
  280. data/test/regression/test_chart_data_labels19.rb +1 -1
  281. data/test/regression/test_chart_data_labels20.rb +1 -1
  282. data/test/regression/test_chart_data_labels21.rb +1 -1
  283. data/test/regression/test_chart_data_labels22.rb +1 -1
  284. data/test/regression/test_chart_data_labels23.rb +1 -1
  285. data/test/regression/test_chart_data_labels24.rb +1 -1
  286. data/test/regression/test_chart_date01.rb +1 -1
  287. data/test/regression/test_chart_date02.rb +1 -1
  288. data/test/regression/test_chart_date03.rb +1 -1
  289. data/test/regression/test_chart_date04.rb +1 -1
  290. data/test/regression/test_chart_date05.rb +1 -1
  291. data/test/regression/test_chart_display_units01.rb +1 -1
  292. data/test/regression/test_chart_display_units02.rb +1 -1
  293. data/test/regression/test_chart_display_units03.rb +1 -1
  294. data/test/regression/test_chart_display_units04.rb +1 -1
  295. data/test/regression/test_chart_display_units05.rb +1 -1
  296. data/test/regression/test_chart_display_units06.rb +1 -1
  297. data/test/regression/test_chart_display_units07.rb +1 -1
  298. data/test/regression/test_chart_display_units08.rb +1 -1
  299. data/test/regression/test_chart_display_units09.rb +1 -1
  300. data/test/regression/test_chart_display_units10.rb +1 -1
  301. data/test/regression/test_chart_display_units11.rb +1 -1
  302. data/test/regression/test_chart_display_units12.rb +1 -1
  303. data/test/regression/test_chart_doughnut01.rb +1 -1
  304. data/test/regression/test_chart_doughnut02.rb +1 -1
  305. data/test/regression/test_chart_doughnut03.rb +1 -1
  306. data/test/regression/test_chart_doughnut04.rb +1 -1
  307. data/test/regression/test_chart_doughnut05.rb +1 -1
  308. data/test/regression/test_chart_doughnut06.rb +1 -1
  309. data/test/regression/test_chart_drop_lines01.rb +1 -1
  310. data/test/regression/test_chart_drop_lines02.rb +1 -1
  311. data/test/regression/test_chart_drop_lines03.rb +1 -1
  312. data/test/regression/test_chart_drop_lines04.rb +1 -1
  313. data/test/regression/test_chart_errorbars01.rb +1 -1
  314. data/test/regression/test_chart_errorbars02.rb +1 -1
  315. data/test/regression/test_chart_errorbars03.rb +1 -1
  316. data/test/regression/test_chart_errorbars04.rb +1 -1
  317. data/test/regression/test_chart_errorbars05.rb +1 -1
  318. data/test/regression/test_chart_errorbars06.rb +1 -1
  319. data/test/regression/test_chart_errorbars07.rb +1 -1
  320. data/test/regression/test_chart_errorbars08.rb +1 -1
  321. data/test/regression/test_chart_errorbars09.rb +1 -1
  322. data/test/regression/test_chart_errorbars10.rb +1 -1
  323. data/test/regression/test_chart_font01.rb +1 -1
  324. data/test/regression/test_chart_font02.rb +1 -1
  325. data/test/regression/test_chart_font03.rb +1 -1
  326. data/test/regression/test_chart_font04.rb +1 -1
  327. data/test/regression/test_chart_font05.rb +1 -1
  328. data/test/regression/test_chart_font06.rb +1 -1
  329. data/test/regression/test_chart_font07.rb +1 -1
  330. data/test/regression/test_chart_font08.rb +1 -1
  331. data/test/regression/test_chart_font09.rb +1 -1
  332. data/test/regression/test_chart_format01.rb +1 -1
  333. data/test/regression/test_chart_format02.rb +1 -1
  334. data/test/regression/test_chart_format03.rb +1 -1
  335. data/test/regression/test_chart_format04.rb +1 -1
  336. data/test/regression/test_chart_format05.rb +1 -1
  337. data/test/regression/test_chart_format06.rb +1 -1
  338. data/test/regression/test_chart_format07.rb +1 -1
  339. data/test/regression/test_chart_format08.rb +1 -1
  340. data/test/regression/test_chart_format09.rb +1 -1
  341. data/test/regression/test_chart_format10.rb +1 -1
  342. data/test/regression/test_chart_format11.rb +1 -1
  343. data/test/regression/test_chart_format12.rb +1 -1
  344. data/test/regression/test_chart_format13.rb +1 -1
  345. data/test/regression/test_chart_format14.rb +1 -1
  346. data/test/regression/test_chart_format15.rb +1 -1
  347. data/test/regression/test_chart_format16.rb +1 -1
  348. data/test/regression/test_chart_format17.rb +1 -1
  349. data/test/regression/test_chart_format18.rb +1 -1
  350. data/test/regression/test_chart_format19.rb +1 -1
  351. data/test/regression/test_chart_format20.rb +1 -1
  352. data/test/regression/test_chart_format21.rb +47 -0
  353. data/test/regression/test_chart_format22.rb +47 -0
  354. data/test/regression/test_chart_format23.rb +47 -0
  355. data/test/regression/test_chart_format24.rb +52 -0
  356. data/test/regression/test_chart_format25.rb +46 -0
  357. data/test/regression/test_chart_gap01.rb +1 -1
  358. data/test/regression/test_chart_gap02.rb +1 -1
  359. data/test/regression/test_chart_gap03.rb +1 -1
  360. data/test/regression/test_chart_gap04.rb +1 -1
  361. data/test/regression/test_chart_gap05.rb +1 -1
  362. data/test/regression/test_chart_gradient01.rb +1 -1
  363. data/test/regression/test_chart_gradient02.rb +1 -1
  364. data/test/regression/test_chart_gradient03.rb +1 -1
  365. data/test/regression/test_chart_gradient04.rb +1 -1
  366. data/test/regression/test_chart_gradient05.rb +1 -1
  367. data/test/regression/test_chart_gradient06.rb +1 -1
  368. data/test/regression/test_chart_gradient07.rb +1 -1
  369. data/test/regression/test_chart_gradient08.rb +1 -1
  370. data/test/regression/test_chart_gradient09.rb +1 -1
  371. data/test/regression/test_chart_gradient10.rb +1 -1
  372. data/test/regression/test_chart_gradient11.rb +1 -1
  373. data/test/regression/test_chart_gradient12.rb +1 -1
  374. data/test/regression/test_chart_gradient13.rb +1 -1
  375. data/test/regression/test_chart_gridlines01.rb +1 -1
  376. data/test/regression/test_chart_gridlines02.rb +1 -1
  377. data/test/regression/test_chart_gridlines03.rb +1 -1
  378. data/test/regression/test_chart_gridlines04.rb +5 -4
  379. data/test/regression/test_chart_gridlines05.rb +1 -1
  380. data/test/regression/test_chart_gridlines06.rb +1 -1
  381. data/test/regression/test_chart_gridlines07.rb +1 -1
  382. data/test/regression/test_chart_gridlines08.rb +9 -12
  383. data/test/regression/test_chart_gridlines09.rb +1 -1
  384. data/test/regression/test_chart_layout01.rb +1 -1
  385. data/test/regression/test_chart_layout02.rb +1 -1
  386. data/test/regression/test_chart_layout03.rb +1 -1
  387. data/test/regression/test_chart_layout04.rb +1 -1
  388. data/test/regression/test_chart_layout05.rb +1 -1
  389. data/test/regression/test_chart_layout06.rb +1 -1
  390. data/test/regression/test_chart_layout07.rb +1 -1
  391. data/test/regression/test_chart_layout08.rb +1 -1
  392. data/test/regression/test_chart_legend01.rb +1 -1
  393. data/test/regression/test_chart_legend02.rb +1 -1
  394. data/test/regression/test_chart_line01.rb +1 -1
  395. data/test/regression/test_chart_line02.rb +1 -1
  396. data/test/regression/test_chart_line03.rb +1 -1
  397. data/test/regression/test_chart_line04.rb +1 -1
  398. data/test/regression/test_chart_name01.rb +1 -1
  399. data/test/regression/test_chart_name02.rb +1 -1
  400. data/test/regression/test_chart_name03.rb +1 -1
  401. data/test/regression/test_chart_order01.rb +1 -1
  402. data/test/regression/test_chart_order02.rb +1 -1
  403. data/test/regression/test_chart_order03.rb +1 -1
  404. data/test/regression/test_chart_pattern01.rb +49 -0
  405. data/test/regression/test_chart_pattern02.rb +106 -0
  406. data/test/regression/test_chart_pattern03.rb +105 -0
  407. data/test/regression/test_chart_pattern04.rb +105 -0
  408. data/test/regression/test_chart_pattern05.rb +105 -0
  409. data/test/regression/test_chart_pattern06.rb +105 -0
  410. data/test/regression/test_chart_pattern07.rb +105 -0
  411. data/test/regression/test_chart_pattern08.rb +105 -0
  412. data/test/regression/test_chart_pattern09.rb +57 -0
  413. data/test/regression/test_chart_pattern10.rb +57 -0
  414. data/test/regression/test_chart_pie01.rb +1 -1
  415. data/test/regression/test_chart_pie02.rb +1 -1
  416. data/test/regression/test_chart_pie03.rb +1 -1
  417. data/test/regression/test_chart_pie04.rb +1 -1
  418. data/test/regression/test_chart_pie05.rb +1 -1
  419. data/test/regression/test_chart_points01.rb +1 -1
  420. data/test/regression/test_chart_points02.rb +1 -1
  421. data/test/regression/test_chart_points03.rb +1 -1
  422. data/test/regression/test_chart_points04.rb +1 -1
  423. data/test/regression/test_chart_points05.rb +1 -1
  424. data/test/regression/test_chart_points06.rb +1 -1
  425. data/test/regression/test_chart_radar01.rb +1 -1
  426. data/test/regression/test_chart_radar02.rb +1 -1
  427. data/test/regression/test_chart_radar03.rb +1 -1
  428. data/test/regression/test_chart_scatter01.rb +1 -1
  429. data/test/regression/test_chart_scatter02.rb +1 -1
  430. data/test/regression/test_chart_scatter03.rb +1 -1
  431. data/test/regression/test_chart_scatter04.rb +1 -1
  432. data/test/regression/test_chart_scatter05.rb +1 -1
  433. data/test/regression/test_chart_scatter06.rb +1 -1
  434. data/test/regression/test_chart_scatter07.rb +1 -1
  435. data/test/regression/test_chart_scatter08.rb +1 -1
  436. data/test/regression/test_chart_scatter09.rb +1 -1
  437. data/test/regression/test_chart_scatter10.rb +1 -1
  438. data/test/regression/test_chart_scatter11.rb +1 -1
  439. data/test/regression/test_chart_scatter12.rb +1 -1
  440. data/test/regression/test_chart_scatter13.rb +1 -1
  441. data/test/regression/test_chart_scatter14.rb +1 -1
  442. data/test/regression/test_chart_scatter15.rb +1 -1
  443. data/test/regression/test_chart_size01.rb +1 -1
  444. data/test/regression/test_chart_size02.rb +1 -1
  445. data/test/regression/test_chart_size03.rb +1 -1
  446. data/test/regression/test_chart_size04.rb +1 -1
  447. data/test/regression/test_chart_size05.rb +1 -1
  448. data/test/regression/test_chart_sparse01.rb +1 -1
  449. data/test/regression/test_chart_stock01.rb +1 -1
  450. data/test/regression/test_chart_stock02.rb +1 -1
  451. data/test/regression/test_chart_str01.rb +1 -1
  452. data/test/regression/test_chart_str02.rb +1 -1
  453. data/test/regression/test_chart_table01.rb +1 -1
  454. data/test/regression/test_chart_table02.rb +1 -1
  455. data/test/regression/test_chart_title01.rb +1 -1
  456. data/test/regression/test_chart_title02.rb +1 -1
  457. data/test/regression/test_chartsheet01.rb +1 -1
  458. data/test/regression/test_chartsheet02.rb +1 -1
  459. data/test/regression/test_chartsheet03.rb +1 -1
  460. data/test/regression/test_chartsheet04.rb +1 -1
  461. data/test/regression/test_chartsheet05.rb +1 -1
  462. data/test/regression/test_chartsheet06.rb +1 -1
  463. data/test/regression/test_chartsheet07.rb +1 -1
  464. data/test/regression/test_chartsheet08.rb +1 -1
  465. data/test/regression/test_chartsheet09.rb +1 -1
  466. data/test/regression/test_comment01.rb +1 -1
  467. data/test/regression/test_comment02.rb +1 -1
  468. data/test/regression/test_comment03.rb +1 -1
  469. data/test/regression/test_comment04.rb +1 -1
  470. data/test/regression/test_comment06.rb +1 -1
  471. data/test/regression/test_comment07.rb +1 -1
  472. data/test/regression/test_comment08.rb +1 -1
  473. data/test/regression/test_comment09.rb +1 -1
  474. data/test/regression/test_comment10.rb +1 -1
  475. data/test/regression/test_comment11.rb +1 -1
  476. data/test/regression/test_comment12.rb +1 -1
  477. data/test/regression/test_cond_format01.rb +1 -1
  478. data/test/regression/test_cond_format02.rb +1 -1
  479. data/test/regression/test_cond_format03.rb +1 -1
  480. data/test/regression/test_cond_format04.rb +1 -1
  481. data/test/regression/test_cond_format05.rb +1 -1
  482. data/test/regression/test_cond_format06.rb +1 -1
  483. data/test/regression/test_cond_format07.rb +1 -1
  484. data/test/regression/test_cond_format08.rb +1 -1
  485. data/test/regression/test_cond_format10.rb +1 -1
  486. data/test/regression/test_cond_format11.rb +1 -1
  487. data/test/regression/test_cond_format12.rb +1 -1
  488. data/test/regression/test_cond_format13.rb +1 -1
  489. data/test/regression/test_custom_colors01.rb +1 -1
  490. data/test/regression/test_data_validation01.rb +1 -1
  491. data/test/regression/test_data_validation02.rb +1 -1
  492. data/test/regression/test_data_validation03.rb +1 -1
  493. data/test/regression/test_data_validation04.rb +2 -2
  494. data/test/regression/test_data_validation05.rb +2 -2
  495. data/test/regression/test_data_validation08.rb +24 -0
  496. data/test/regression/test_date_1904_01.rb +1 -1
  497. data/test/regression/test_date_1904_02.rb +1 -1
  498. data/test/regression/test_date_examples01.rb +1 -1
  499. data/test/regression/test_default_format01.rb +1 -1
  500. data/test/regression/test_default_row01.rb +1 -1
  501. data/test/regression/test_default_row02.rb +1 -1
  502. data/test/regression/test_default_row03.rb +1 -1
  503. data/test/regression/test_default_row04.rb +1 -1
  504. data/test/regression/test_default_row05.rb +32 -0
  505. data/test/regression/test_defined_name01.rb +1 -1
  506. data/test/regression/test_defined_name02.rb +1 -1
  507. data/test/regression/test_defined_name03.rb +1 -1
  508. data/test/regression/test_defined_name04.rb +15 -15
  509. data/test/regression/test_escapes01.rb +1 -1
  510. data/test/regression/test_escapes02.rb +1 -1
  511. data/test/regression/test_escapes03.rb +1 -1
  512. data/test/regression/test_escapes04.rb +1 -1
  513. data/test/regression/test_escapes05.rb +1 -1
  514. data/test/regression/test_escapes06.rb +1 -1
  515. data/test/regression/test_escapes07.rb +1 -1
  516. data/test/regression/test_escapes08.rb +1 -1
  517. data/test/regression/test_excel2003_style01.rb +1 -1
  518. data/test/regression/test_excel2003_style02.rb +1 -1
  519. data/test/regression/test_excel2003_style03.rb +1 -1
  520. data/test/regression/test_excel2003_style04.rb +1 -1
  521. data/test/regression/test_excel2003_style05.rb +1 -1
  522. data/test/regression/test_excel2003_style06.rb +1 -1
  523. data/test/regression/test_excel2003_style07.rb +1 -1
  524. data/test/regression/test_excel2003_style08.rb +1 -1
  525. data/test/regression/test_firstsheet01.rb +1 -1
  526. data/test/regression/test_fit_to_pages01.rb +1 -1
  527. data/test/regression/test_fit_to_pages02.rb +1 -1
  528. data/test/regression/test_fit_to_pages03.rb +1 -1
  529. data/test/regression/test_fit_to_pages04.rb +1 -1
  530. data/test/regression/test_fit_to_pages05.rb +1 -1
  531. data/test/regression/test_format01.rb +1 -1
  532. data/test/regression/test_format02.rb +1 -1
  533. data/test/regression/test_format03.rb +1 -1
  534. data/test/regression/test_format04.rb +1 -1
  535. data/test/regression/test_format05.rb +1 -1
  536. data/test/regression/test_format11.rb +1 -1
  537. data/test/regression/test_format12.rb +1 -1
  538. data/test/regression/test_format13.rb +31 -0
  539. data/test/regression/test_format14.rb +26 -0
  540. data/test/regression/test_formula_results01.rb +1 -1
  541. data/test/regression/test_gridlines01.rb +1 -1
  542. data/test/regression/test_header01.rb +1 -1
  543. data/test/regression/test_header02.rb +1 -1
  544. data/test/regression/test_header03.rb +1 -1
  545. data/test/regression/test_header_image01.rb +1 -1
  546. data/test/regression/test_header_image02.rb +1 -1
  547. data/test/regression/test_header_image03.rb +1 -1
  548. data/test/regression/test_header_image04.rb +1 -1
  549. data/test/regression/test_header_image05.rb +1 -1
  550. data/test/regression/test_header_image06.rb +1 -1
  551. data/test/regression/test_header_image07.rb +1 -1
  552. data/test/regression/test_header_image08.rb +1 -1
  553. data/test/regression/test_header_image09.rb +1 -1
  554. data/test/regression/test_header_image10.rb +1 -1
  555. data/test/regression/test_header_image11.rb +1 -1
  556. data/test/regression/test_header_image12.rb +1 -1
  557. data/test/regression/test_header_image13.rb +1 -1
  558. data/test/regression/test_header_image14.rb +1 -1
  559. data/test/regression/test_hide01.rb +1 -1
  560. data/test/regression/test_hyperlink01.rb +1 -1
  561. data/test/regression/test_hyperlink02.rb +1 -1
  562. data/test/regression/test_hyperlink03.rb +1 -1
  563. data/test/regression/test_hyperlink04.rb +1 -1
  564. data/test/regression/test_hyperlink05.rb +1 -1
  565. data/test/regression/test_hyperlink06.rb +1 -1
  566. data/test/regression/test_hyperlink07.rb +1 -1
  567. data/test/regression/test_hyperlink08.rb +1 -1
  568. data/test/regression/test_hyperlink09.rb +1 -1
  569. data/test/regression/test_hyperlink10.rb +1 -1
  570. data/test/regression/test_hyperlink11.rb +1 -1
  571. data/test/regression/test_hyperlink12.rb +1 -1
  572. data/test/regression/test_hyperlink13.rb +1 -1
  573. data/test/regression/test_hyperlink14.rb +1 -1
  574. data/test/regression/test_hyperlink15.rb +1 -1
  575. data/test/regression/test_hyperlink16.rb +1 -1
  576. data/test/regression/test_hyperlink17.rb +1 -1
  577. data/test/regression/test_hyperlink18.rb +1 -1
  578. data/test/regression/test_hyperlink20.rb +1 -1
  579. data/test/regression/test_hyperlink21.rb +1 -1
  580. data/test/regression/test_hyperlink22.rb +24 -0
  581. data/test/regression/test_hyperlink23.rb +24 -0
  582. data/test/regression/test_hyperlink24.rb +24 -0
  583. data/test/regression/test_hyperlink25.rb +27 -0
  584. data/test/regression/test_hyperlink26.rb +27 -0
  585. data/test/regression/test_hyperlink27.rb +24 -0
  586. data/test/regression/test_image01.rb +1 -1
  587. data/test/regression/test_image02.rb +1 -1
  588. data/test/regression/test_image03.rb +1 -1
  589. data/test/regression/test_image04.rb +1 -1
  590. data/test/regression/test_image05.rb +1 -1
  591. data/test/regression/test_image06.rb +1 -1
  592. data/test/regression/test_image07.rb +1 -1
  593. data/test/regression/test_image08.rb +1 -1
  594. data/test/regression/test_image09.rb +1 -1
  595. data/test/regression/test_image10.rb +1 -1
  596. data/test/regression/test_image11.rb +1 -1
  597. data/test/regression/test_image12.rb +1 -1
  598. data/test/regression/test_image13.rb +1 -1
  599. data/test/regression/test_image14.rb +1 -1
  600. data/test/regression/test_image15.rb +1 -1
  601. data/test/regression/test_image16.rb +1 -1
  602. data/test/regression/test_image17.rb +1 -1
  603. data/test/regression/test_image18.rb +1 -1
  604. data/test/regression/test_image19.rb +1 -1
  605. data/test/regression/test_image22.rb +1 -1
  606. data/test/regression/test_image23.rb +1 -1
  607. data/test/regression/test_image24.rb +1 -1
  608. data/test/regression/test_image25.rb +1 -1
  609. data/test/regression/test_image26.rb +1 -1
  610. data/test/regression/test_image27.rb +1 -1
  611. data/test/regression/test_image28.rb +27 -0
  612. data/test/regression/test_image29.rb +27 -0
  613. data/test/regression/test_image30.rb +27 -0
  614. data/test/regression/test_image31.rb +30 -0
  615. data/test/regression/test_image32.rb +28 -0
  616. data/test/regression/test_image33.rb +32 -0
  617. data/test/regression/test_landscape01.rb +1 -1
  618. data/test/regression/test_macro01.rb +1 -1
  619. data/test/regression/test_merge_cells01.rb +1 -1
  620. data/test/regression/test_merge_range01.rb +1 -1
  621. data/test/regression/test_merge_range02.rb +1 -1
  622. data/test/regression/test_merge_range03.rb +1 -1
  623. data/test/regression/test_merge_range04.rb +1 -1
  624. data/test/regression/test_merge_range05.rb +1 -1
  625. data/test/regression/test_outline01.rb +1 -1
  626. data/test/regression/test_outline02.rb +1 -1
  627. data/test/regression/test_outline03.rb +1 -1
  628. data/test/regression/test_outline04.rb +1 -1
  629. data/test/regression/test_outline05.rb +1 -1
  630. data/test/regression/test_outline06.rb +1 -1
  631. data/test/regression/test_page_breaks01.rb +1 -1
  632. data/test/regression/test_page_breaks02.rb +1 -1
  633. data/test/regression/test_page_breaks03.rb +1 -1
  634. data/test/regression/test_page_breaks04.rb +1 -1
  635. data/test/regression/test_page_breaks05.rb +1 -1
  636. data/test/regression/test_page_breaks06.rb +1 -1
  637. data/test/regression/test_page_view01.rb +1 -1
  638. data/test/regression/test_panes01.rb +1 -1
  639. data/test/regression/test_print_across01.rb +1 -1
  640. data/test/regression/test_print_area01.rb +1 -1
  641. data/test/regression/test_print_area02.rb +1 -1
  642. data/test/regression/test_print_area03.rb +1 -1
  643. data/test/regression/test_print_area04.rb +1 -1
  644. data/test/regression/test_print_area05.rb +1 -1
  645. data/test/regression/test_print_area06.rb +1 -1
  646. data/test/regression/test_print_area07.rb +1 -1
  647. data/test/regression/test_print_options01.rb +1 -1
  648. data/test/regression/test_print_options02.rb +1 -1
  649. data/test/regression/test_print_options03.rb +1 -1
  650. data/test/regression/test_print_options04.rb +1 -1
  651. data/test/regression/test_print_options05.rb +1 -1
  652. data/test/regression/test_print_options06.rb +1 -1
  653. data/test/regression/test_print_options07.rb +1 -1
  654. data/test/regression/test_print_scale01.rb +1 -1
  655. data/test/regression/test_print_scale02.rb +1 -1
  656. data/test/regression/test_properties01.rb +1 -1
  657. data/test/regression/test_properties02.rb +28 -0
  658. data/test/regression/test_protect01.rb +1 -1
  659. data/test/regression/test_protect02.rb +1 -1
  660. data/test/regression/test_protect03.rb +1 -1
  661. data/test/regression/test_quote_name01.rb +1 -1
  662. data/test/regression/test_quote_name03.rb +1 -1
  663. data/test/regression/test_quote_name04.rb +1 -1
  664. data/test/regression/test_repeat01.rb +1 -1
  665. data/test/regression/test_repeat02.rb +1 -1
  666. data/test/regression/test_repeat03.rb +1 -1
  667. data/test/regression/test_repeat04.rb +1 -1
  668. data/test/regression/test_repeat05.rb +1 -1
  669. data/test/regression/test_rich_string01.rb +1 -1
  670. data/test/regression/test_rich_string02.rb +1 -1
  671. data/test/regression/test_rich_string03.rb +1 -1
  672. data/test/regression/test_rich_string04.rb +1 -1
  673. data/test/regression/test_rich_string05.rb +1 -1
  674. data/test/regression/test_rich_string06.rb +1 -1
  675. data/test/regression/test_rich_string07.rb +1 -1
  676. data/test/regression/test_rich_string08.rb +1 -1
  677. data/test/regression/test_rich_string09.rb +1 -1
  678. data/test/regression/test_rich_string10.rb +1 -1
  679. data/test/regression/test_rich_string11.rb +1 -1
  680. data/test/regression/test_rich_string12.rb +1 -1
  681. data/test/regression/test_row_col_format01.rb +1 -1
  682. data/test/regression/test_row_col_format02.rb +1 -1
  683. data/test/regression/test_row_col_format03.rb +1 -1
  684. data/test/regression/test_row_col_format04.rb +1 -1
  685. data/test/regression/test_row_col_format05.rb +1 -1
  686. data/test/regression/test_row_col_format06.rb +1 -1
  687. data/test/regression/test_row_col_format07.rb +1 -1
  688. data/test/regression/test_row_col_format08.rb +1 -1
  689. data/test/regression/test_row_col_format09.rb +1 -1
  690. data/test/regression/test_row_col_format10.rb +1 -1
  691. data/test/regression/test_row_col_format11.rb +1 -1
  692. data/test/regression/test_row_col_format12.rb +1 -1
  693. data/test/regression/test_row_col_format13.rb +1 -1
  694. data/test/regression/test_row_col_format14.rb +1 -1
  695. data/test/regression/test_selection01.rb +1 -1
  696. data/test/regression/test_selection02.rb +1 -1
  697. data/test/regression/test_set_column01.rb +1 -1
  698. data/test/regression/test_set_column02.rb +1 -1
  699. data/test/regression/test_set_column03.rb +1 -1
  700. data/test/regression/test_set_column04.rb +1 -1
  701. data/test/regression/test_set_column05.rb +1 -1
  702. data/test/regression/test_set_column06.rb +1 -1
  703. data/test/regression/test_set_column07.rb +1 -1
  704. data/test/regression/test_set_column08.rb +1 -1
  705. data/test/regression/test_set_column09.rb +1 -1
  706. data/test/regression/test_set_print_scale01.rb +1 -1
  707. data/test/regression/test_set_start_page01.rb +1 -1
  708. data/test/regression/test_set_start_page02.rb +1 -1
  709. data/test/regression/test_set_start_page03.rb +1 -1
  710. data/test/regression/test_shape01.rb +1 -1
  711. data/test/regression/test_shape02.rb +1 -1
  712. data/test/regression/test_shape03.rb +1 -1
  713. data/test/regression/test_shape04.rb +1 -1
  714. data/test/regression/test_shape_connect01.rb +1 -1
  715. data/test/regression/test_shape_connect02.rb +1 -1
  716. data/test/regression/test_shape_connect03.rb +1 -1
  717. data/test/regression/test_shape_connect04.rb +1 -1
  718. data/test/regression/test_shape_scale01.rb +1 -1
  719. data/test/regression/test_shape_stencil01.rb +1 -1
  720. data/test/regression/test_shared_strings01.rb +1 -1
  721. data/test/regression/test_shared_strings02.rb +1 -1
  722. data/test/regression/test_simple01.rb +1 -1
  723. data/test/regression/test_simple02.rb +1 -1
  724. data/test/regression/test_simple03.rb +1 -1
  725. data/test/regression/test_simple04.rb +1 -1
  726. data/test/regression/test_simple05.rb +1 -1
  727. data/test/regression/test_tab_color01.rb +1 -1
  728. data/test/regression/test_table01.rb +1 -1
  729. data/test/regression/test_table02.rb +1 -1
  730. data/test/regression/test_table03.rb +1 -1
  731. data/test/regression/test_table04.rb +1 -1
  732. data/test/regression/test_table05.rb +1 -1
  733. data/test/regression/test_table06.rb +1 -1
  734. data/test/regression/test_table07.rb +1 -1
  735. data/test/regression/test_table08.rb +1 -1
  736. data/test/regression/test_table09.rb +1 -1
  737. data/test/regression/test_table10.rb +1 -1
  738. data/test/regression/test_table11.rb +1 -1
  739. data/test/regression/test_table12.rb +1 -1
  740. data/test/regression/test_table13.rb +1 -1
  741. data/test/regression/test_table14.rb +1 -1
  742. data/test/regression/test_table15.rb +1 -1
  743. data/test/regression/test_table16.rb +1 -1
  744. data/test/regression/test_table17.rb +1 -1
  745. data/test/regression/test_tutorial01.rb +1 -1
  746. data/test/regression/test_tutorial02.rb +1 -1
  747. data/test/regression/test_tutorial03.rb +1 -1
  748. data/test/regression/test_types02.rb +25 -0
  749. data/test/regression/test_types08.rb +31 -0
  750. data/test/regression/test_update_range_format_with_params.rb +1 -1
  751. data/test/regression/test_urls_as_strings.rb +1 -1
  752. data/test/regression/test_utf8_01.rb +1 -1
  753. data/test/regression/test_utf8_03.rb +1 -1
  754. data/test/regression/test_utf8_04.rb +1 -1
  755. data/test/regression/test_utf8_05.rb +1 -1
  756. data/test/regression/test_utf8_06.rb +1 -1
  757. data/test/regression/test_utf8_07.rb +1 -1
  758. data/test/regression/test_utf8_08.rb +1 -1
  759. data/test/regression/test_utf8_09.rb +1 -1
  760. data/test/regression/test_utf8_10.rb +1 -1
  761. data/test/regression/test_utf8_11.rb +23 -0
  762. data/test/regression/test_vml01.rb +1 -1
  763. data/test/regression/test_vml02.rb +1 -1
  764. data/test/regression/test_vml03.rb +1 -1
  765. data/test/regression/xlsx_files/chart_axis40.xlsx +0 -0
  766. data/test/regression/xlsx_files/chart_axis41.xlsx +0 -0
  767. data/test/regression/xlsx_files/chart_combined09.xlsx +0 -0
  768. data/test/regression/xlsx_files/chart_format21.xlsx +0 -0
  769. data/test/regression/xlsx_files/chart_format22.xlsx +0 -0
  770. data/test/regression/xlsx_files/chart_format23.xlsx +0 -0
  771. data/test/regression/xlsx_files/chart_format24.xlsx +0 -0
  772. data/test/regression/xlsx_files/chart_format25.xlsx +0 -0
  773. data/test/regression/xlsx_files/chart_pattern01.xlsx +0 -0
  774. data/test/regression/xlsx_files/chart_pattern02.xlsx +0 -0
  775. data/test/regression/xlsx_files/chart_pattern03.xlsx +0 -0
  776. data/test/regression/xlsx_files/chart_pattern04.xlsx +0 -0
  777. data/test/regression/xlsx_files/chart_pattern05.xlsx +0 -0
  778. data/test/regression/xlsx_files/chart_pattern06.xlsx +0 -0
  779. data/test/regression/xlsx_files/chart_pattern07.xlsx +0 -0
  780. data/test/regression/xlsx_files/chart_pattern08.xlsx +0 -0
  781. data/test/regression/xlsx_files/chart_pattern09.xlsx +0 -0
  782. data/test/regression/xlsx_files/chart_pattern10.xlsx +0 -0
  783. data/test/regression/xlsx_files/data_validation08.xlsx +0 -0
  784. data/test/regression/xlsx_files/default_row05.xlsx +0 -0
  785. data/test/regression/xlsx_files/format13.xlsx +0 -0
  786. data/test/regression/xlsx_files/format14.xlsx +0 -0
  787. data/test/regression/xlsx_files/hyperlink22.xlsx +0 -0
  788. data/test/regression/xlsx_files/hyperlink23.xlsx +0 -0
  789. data/test/regression/xlsx_files/hyperlink24.xlsx +0 -0
  790. data/test/regression/xlsx_files/hyperlink25.xlsx +0 -0
  791. data/test/regression/xlsx_files/hyperlink26.xlsx +0 -0
  792. data/test/regression/xlsx_files/hyperlink27.xlsx +0 -0
  793. data/test/regression/xlsx_files/image28.xlsx +0 -0
  794. data/test/regression/xlsx_files/image29.xlsx +0 -0
  795. data/test/regression/xlsx_files/image30.xlsx +0 -0
  796. data/test/regression/xlsx_files/image31.xlsx +0 -0
  797. data/test/regression/xlsx_files/image32.xlsx +0 -0
  798. data/test/regression/xlsx_files/image33.xlsx +0 -0
  799. data/test/regression/xlsx_files/properties02.xlsx +0 -0
  800. data/test/regression/xlsx_files/table18.xlsx +0 -0
  801. data/test/regression/xlsx_files/table19.xlsx +0 -0
  802. data/test/regression/xlsx_files/types02.xlsx +0 -0
  803. data/test/regression/xlsx_files/types08.xlsx +0 -0
  804. data/test/regression/xlsx_files/utf8_11.xlsx +0 -0
  805. data/test/test_delete_files.rb +3 -3
  806. data/test/test_example_match.rb +1 -1
  807. data/test/test_option_hash_for_workbook.rb +1 -1
  808. data/test/test_xml_writer_simple.rb +1 -1
  809. data/test/workbook/test_define_name.rb +1 -1
  810. data/test/workbook/test_get_chart_range.rb +3 -5
  811. data/test/workbook/test_sort_defined_names.rb +1 -1
  812. data/test/workbook/test_workbook_01.rb +1 -1
  813. data/test/workbook/test_workbook_02.rb +1 -1
  814. data/test/workbook/test_workbook_03.rb +1 -1
  815. data/test/workbook/test_worksheet_by_name.rb +35 -0
  816. data/test/workbook/test_write_calc_pr.rb +1 -1
  817. data/test/workbook/test_write_defined_name.rb +1 -1
  818. data/test/workbook/test_write_defined_names.rb +1 -1
  819. data/test/worksheet/test_calculate_spans.rb +1 -1
  820. data/test/worksheet/test_cond_format_01.rb +1 -1
  821. data/test/worksheet/test_cond_format_02.rb +1 -1
  822. data/test/worksheet/test_cond_format_03.rb +1 -1
  823. data/test/worksheet/test_cond_format_04.rb +1 -1
  824. data/test/worksheet/test_cond_format_05.rb +1 -1
  825. data/test/worksheet/test_cond_format_06.rb +1 -1
  826. data/test/worksheet/test_cond_format_07.rb +1 -1
  827. data/test/worksheet/test_cond_format_08.rb +1 -1
  828. data/test/worksheet/test_cond_format_09.rb +1 -1
  829. data/test/worksheet/test_cond_format_10.rb +1 -1
  830. data/test/worksheet/test_cond_format_11.rb +1 -1
  831. data/test/worksheet/test_cond_format_12.rb +1 -1
  832. data/test/worksheet/test_cond_format_13.rb +1 -1
  833. data/test/worksheet/test_cond_format_14.rb +1 -1
  834. data/test/worksheet/test_cond_format_15.rb +1 -1
  835. data/test/worksheet/test_cond_format_16.rb +1 -1
  836. data/test/worksheet/test_cond_format_17.rb +1 -1
  837. data/test/worksheet/test_cond_format_18.rb +1 -1
  838. data/test/worksheet/test_cond_format_19.rb +1 -1
  839. data/test/worksheet/test_cond_format_20.rb +1 -1
  840. data/test/worksheet/test_cond_format_21.rb +90 -0
  841. data/test/worksheet/test_convert_date_time_01.rb +1 -1
  842. data/test/worksheet/test_convert_date_time_02.rb +1 -1
  843. data/test/worksheet/test_convert_date_time_03.rb +1 -1
  844. data/test/worksheet/test_convert_date_time_04.rb +1 -1
  845. data/test/worksheet/test_extract_filter_tokens.rb +1 -1
  846. data/test/worksheet/test_parse_filter_expression.rb +1 -1
  847. data/test/worksheet/test_position_object.rb +1 -1
  848. data/test/worksheet/test_repeat_formula.rb +1 -1
  849. data/test/worksheet/test_sparkline_01.rb +1 -1
  850. data/test/worksheet/test_sparkline_02.rb +1 -1
  851. data/test/worksheet/test_sparkline_03.rb +1 -1
  852. data/test/worksheet/test_sparkline_04.rb +1 -1
  853. data/test/worksheet/test_sparkline_05.rb +1 -1
  854. data/test/worksheet/test_sparkline_06.rb +1 -1
  855. data/test/worksheet/test_sparkline_07.rb +1 -1
  856. data/test/worksheet/test_sparkline_08.rb +1 -1
  857. data/test/worksheet/test_sparkline_09.rb +1 -1
  858. data/test/worksheet/test_sparkline_10.rb +1 -1
  859. data/test/worksheet/test_sparkline_11.rb +1 -1
  860. data/test/worksheet/test_sparkline_12.rb +94 -0
  861. data/test/worksheet/test_update_format_methods.rb +9 -29
  862. data/test/worksheet/test_worksheet_01.rb +1 -1
  863. data/test/worksheet/test_worksheet_02.rb +1 -1
  864. data/test/worksheet/test_worksheet_03.rb +1 -1
  865. data/test/worksheet/test_worksheet_04.rb +1 -1
  866. data/test/worksheet/test_write_array_formula_01.rb +1 -8
  867. data/test/worksheet/test_write_autofilter.rb +1 -1
  868. data/test/worksheet/test_write_brk.rb +1 -1
  869. data/test/worksheet/test_write_cell.rb +1 -1
  870. data/test/worksheet/test_write_cell_value.rb +1 -1
  871. data/test/worksheet/test_write_col_breaks.rb +1 -1
  872. data/test/worksheet/test_write_col_info.rb +1 -1
  873. data/test/worksheet/test_write_conditional_formatting.rb +1 -1
  874. data/test/worksheet/test_write_custom_filter.rb +1 -1
  875. data/test/worksheet/test_write_custom_filters.rb +1 -1
  876. data/test/worksheet/test_write_data_validation_01.rb +1 -1
  877. data/test/worksheet/test_write_data_validation_02.rb +15 -2
  878. data/test/worksheet/test_write_dimension.rb +1 -1
  879. data/test/worksheet/test_write_filter.rb +1 -1
  880. data/test/worksheet/test_write_filter_column.rb +1 -1
  881. data/test/worksheet/test_write_filters.rb +1 -1
  882. data/test/worksheet/test_write_formula_does_not_change_formula_string.rb +1 -1
  883. data/test/worksheet/test_write_header_footer.rb +1 -1
  884. data/test/worksheet/test_write_hyperlink.rb +1 -8
  885. data/test/worksheet/test_write_legacy_drawing.rb +1 -1
  886. data/test/worksheet/test_write_merge_cell.rb +1 -1
  887. data/test/worksheet/test_write_merge_cells.rb +1 -1
  888. data/test/worksheet/test_write_methods.rb +68 -177
  889. data/test/worksheet/test_write_page_margins.rb +1 -1
  890. data/test/worksheet/test_write_page_set_up_pr.rb +1 -1
  891. data/test/worksheet/test_write_page_setup.rb +1 -1
  892. data/test/worksheet/test_write_pane.rb +1 -1
  893. data/test/worksheet/test_write_phonetic_pr.rb +1 -1
  894. data/test/worksheet/test_write_print_options.rb +1 -1
  895. data/test/worksheet/test_write_row_breaks.rb +1 -1
  896. data/test/worksheet/test_write_row_element.rb +1 -1
  897. data/test/worksheet/test_write_selection.rb +1 -1
  898. data/test/worksheet/test_write_sheet_calc_pr.rb +1 -1
  899. data/test/worksheet/test_write_sheet_data.rb +1 -1
  900. data/test/worksheet/test_write_sheet_format_pr.rb +1 -1
  901. data/test/worksheet/test_write_sheet_pr.rb +1 -1
  902. data/test/worksheet/test_write_sheet_protection.rb +1 -1
  903. data/test/worksheet/test_write_sheet_view.rb +1 -1
  904. data/test/worksheet/test_write_sheet_view1.rb +1 -1
  905. data/test/worksheet/test_write_sheet_view2.rb +1 -1
  906. data/test/worksheet/test_write_sheet_view3.rb +1 -1
  907. data/test/worksheet/test_write_sheet_view4.rb +1 -1
  908. data/test/worksheet/test_write_sheet_view5.rb +1 -1
  909. data/test/worksheet/test_write_sheet_view6.rb +1 -1
  910. data/test/worksheet/test_write_sheet_view7.rb +1 -1
  911. data/test/worksheet/test_write_sheet_view8.rb +1 -1
  912. data/test/worksheet/test_write_sheet_view9.rb +1 -1
  913. data/test/worksheet/test_write_tab_color.rb +1 -1
  914. data/test/worksheet/test_write_worksheet_attributes.rb +1 -1
  915. data/write_xlsx.gemspec +2 -2
  916. metadata +169 -15
  917. data/test/test_col_name.rb +0 -13
  918. data/test/workbook/test_workbook_new.rb +0 -18
  919. data/test/worksheet/test_format.rb +0 -17
  920. data/test/worksheet/test_write_multiline_string_with_url.rb +0 -30
  921. data/test/worksheet/test_write_url.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89f382bd2df994369316a0422365541984f53ec084c5d3bb1c5d5a03523757a9
4
- data.tar.gz: 363697c51b2250602fd5122aa3e9c7a6c71ec755a671e659f08f19c58b184792
3
+ metadata.gz: 94c163c93be013a57cc4a4edba4cea1ac35f91ecbed56443d535fa1d6e1a464f
4
+ data.tar.gz: 29fecf270f9b3382e0adae5f9f8ffd3b15ca97a84fc9da8bc24d0402de9a7ce7
5
5
  SHA512:
6
- metadata.gz: c719aa61decdc25064a72704d015d8a1eea48b3a94ccb7ccaf01e99456a6521c5c4fc5a5ee738a721c1e06c4632c737cf47d14afd3830a164162a789acc6e452
7
- data.tar.gz: 96f55161f36511ef22708a377ea647f21f4ae76c978039b0c85c32c5db55ac0330f3e4c7a0e1f030d60c3d00c0c96f6c3f045bbfd240a2e2031c8ced2b2c2945
6
+ metadata.gz: da03548ba5d54019f9a69b2aa6ca70042b4d27824d784996ebdd7109f8c54626609f007d099acffb8a0d09448d5fdd2ea49e491e729b2b075d2e142fd0b36dc7
7
+ data.tar.gz: ba23f9b7be254784821b0bae59134bfa53a1cb2afa22e21576a054c718532f34753701d001d46f52871d770db0af4a6027705c22d28c18f658eb082b49172eeb
@@ -1,7 +1,50 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 3.0.0
4
+ - 2.7.2
5
+ - 2.7.1
6
+ - 2.7.0
7
+ - 2.6.6
8
+ - 2.6.5
9
+ - 2.6.4
10
+ - 2.6.3
11
+ - 2.6.2
12
+ - 2.6.1
13
+ - 2.6.0
14
+ - 2.5.8
15
+ - 2.5.7
16
+ - 2.5.6
17
+ - 2.5.5
18
+ - 2.5.4
19
+ - 2.5.3
20
+ - 2.5.2
21
+ - 2.5.1
22
+ - 2.5.0
23
+ - 2.4.10
24
+ - 2.4.9
25
+ - 2.4.8
26
+ - 2.4.7
27
+ - 2.4.6
28
+ - 2.4.5
29
+ - 2.4.4
30
+ - 2.4.3
31
+ - 2.4.2
32
+ - 2.4.1
33
+ - 2.4.0
34
+ - 2.3.8
35
+ - 2.3.7
36
+ - 2.3.6
37
+ - 2.3.5
38
+ - 2.3.4
39
+ - 2.3.3
40
+ - 2.3.2
3
41
  - 2.3.1
4
42
  - 2.3.0
43
+ - 2.2.10
44
+ - 2.2.9
45
+ - 2.2.8
46
+ - 2.2.7
47
+ - 2.2.6
5
48
  - 2.2.5
6
49
  - 2.2.4
7
50
  - 2.2.3
data/Changes CHANGED
@@ -1,5 +1,59 @@
1
1
  Change history of write_xlsx rubygem.
2
2
 
3
+ 2020-12-28 v0.90.0
4
+
5
+ Added worksheet_by_name() workbook method to retrieve a worksheet
6
+ in a workbook by name.
7
+
8
+ Fixed issue where internal file creation and modification dates where
9
+ in the local timezone instead of UTC.
10
+
11
+ Fixed issue with "external:" urls with space in sheetname.
12
+
13
+ Fixed issue where Unicode full-width number strings were treated as
14
+ numbers in write().
15
+
16
+ 2020-12-27 v0.89.0
17
+
18
+ Added write_boolean() worksheet method to write Excel boolean values.
19
+
20
+
21
+ 2020-12-26 v0.88.0
22
+
23
+ Added transparency option to solid fills in chart areas.
24
+
25
+ Added options to configure chart axis tick placement.
26
+
27
+ 2020-12-26 v0.87.0
28
+
29
+ Added chart pattern and gradient fills.
30
+
31
+ Added option to set chart tick interval.
32
+
33
+ Add checks for valid and non-duplicate worksheet table names.
34
+
35
+ Added support for table header formatting and a fix for wrapped lines in
36
+ the header.
37
+
38
+ use minitest instead of test-unit
39
+
40
+ 2020-11-01 v0.86.0
41
+ Fix for images with negative offsets.
42
+
43
+ Allow hyperlinks longer than 255 characters when the link and anchor
44
+ are each less than or equal to 255 characters.
45
+
46
+ Added hyperlink_base document property.
47
+
48
+ Added option to allow data validation input messages with the ‘any’
49
+ validate parameter.
50
+
51
+ Added "stop if true" feature to conditional formatting.
52
+
53
+ Added better support and documentation for html colours throughout
54
+ the module. The use of the Excel97 colour palette is supported for
55
+ backward compatibility but deprecated.
56
+
3
57
  2020-10-23 v0.85.11
4
58
  Added Worksheet#update_range_format_with_params
5
59
 
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2014 Hideo NAKAMURA
1
+ Copyright (c) 2012-2020 Hideo NAKAMURA
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  gem to create a new file in the Excel 2007+ XLSX format, and you can use the
7
7
  same interface as writeexcel gem. write_xlsx is converted from Perl's module
8
- [Excel::Writer::XLSX-0.84](https://github.com/jmcnamara/excel-writer-xlsx) .
8
+ [Excel::Writer::XLSX-0.90](https://github.com/jmcnamara/excel-writer-xlsx) .
9
9
 
10
10
  ## Description
11
11
 
12
- Reference doc : http://cxn03651.github.io/write_xlsx/
12
+ Reference doc : https://cxn03651.github.io/write_xlsx/
13
13
 
14
14
  The WriteXLSX supports the following features:
15
15
  * Multiple worksheets
@@ -85,13 +85,13 @@ the first worksheet in an Excel XML spreadsheet called ruby.xlsx:
85
85
  Original Perl module was written by John McNamara(jmcnamara@cpan.org).
86
86
 
87
87
  Converted to ruby by Hideo NAKAMURA(nakamrua.hideo@gmail.com)
88
- Copyright (c) 2012-2018 Hideo NAKAMURA.
88
+ Copyright (c) 2012-2020 Hideo NAKAMURA.
89
89
 
90
90
  See LICENSE.txt for further details.
91
91
 
92
92
  ## Contributing to write_xlsx
93
93
 
94
- * repsitory: http://github.com/cxn03651/write_xlsx
94
+ * repsitory: https://github.com/cxn03651/write_xlsx
95
95
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
96
96
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
97
97
  * Fork the project
@@ -99,7 +99,9 @@
99
99
  column_chart2.set_title(:name => 'Combine chart - secondary Y axis')
100
100
  column_chart2.set_x_axis(:name => 'Test number')
101
101
  column_chart2.set_y_axis(:name => 'Sample length (mm)')
102
- column_chart2.set_y2_axis(:name => 'Target length (mm)')
102
+
103
+ # Note: the y2 properties are on the secondary chart.
104
+ line_chart2.set_y_axis(:name => 'Target length (mm)')
103
105
 
104
106
  # Insert the chart into the worksheet
105
107
  worksheet.insert_chart('E18', column_chart2)
@@ -126,4 +126,51 @@
126
126
  end
127
127
  end
128
128
 
129
+
130
+ #
131
+ # Demonstrate the Html colors.
132
+ #
133
+
134
+ colors = {
135
+ '#000000' => 'black',
136
+ '#0000FF' => 'blue',
137
+ '#800000' => 'brown',
138
+ '#00FFFF' => 'cyan',
139
+ '#808080' => 'gray',
140
+ '#008000' => 'green',
141
+ '#00FF00' => 'lime',
142
+ '#FF00FF' => 'magenta',
143
+ '#000080' => 'navy',
144
+ '#FF6600' => 'orange',
145
+ '#FF00FF' => 'pink',
146
+ '#800080' => 'purple',
147
+ '#FF0000' => 'red',
148
+ '#C0C0C0' => 'silver',
149
+ '#FFFFFF' => 'white',
150
+ '#FFFF00' => 'yellow'
151
+ }
152
+
153
+ worksheet3 = workbook.add_worksheet('Html colors')
154
+
155
+ worksheet3.set_column(0, 3, 15)
156
+
157
+ worksheet3.write(0, 0, "Html", heading)
158
+ worksheet3.write(0, 1, "Name", heading)
159
+ worksheet3.write(0, 2, "Color", heading)
160
+
161
+ i = 1
162
+
163
+ colors.each do |html_color, color|
164
+ format = workbook.add_format(
165
+ :fg_color => html_color,
166
+ :pattern => 1,
167
+ :border => 1
168
+ )
169
+
170
+ worksheet3.write(i + 1, 1, html_color, center)
171
+ worksheet3.write(i + 1, 2, color, center)
172
+ worksheet3.write(i + 1, 3, '', format)
173
+ i += 1
174
+ end
175
+
129
176
  workbook.close
@@ -247,7 +247,7 @@
247
247
  comment = 'Hello.'
248
248
 
249
249
  worksheet6.write( 'C9', cell_text, text_wrap )
250
- worksheet6.write_comment( 'C9', comment, :color => 0x35 )
250
+ worksheet6.write_comment( 'C9', comment, :color => '#FF6600' )
251
251
 
252
252
 
253
253
  ###############################################################################
@@ -12,6 +12,7 @@
12
12
  worksheet6 = workbook.add_worksheet
13
13
  worksheet7 = workbook.add_worksheet
14
14
  worksheet8 = workbook.add_worksheet
15
+ worksheet9 = workbook.add_worksheet
15
16
 
16
17
  # Light red fill with dark red text.
17
18
  format1 = workbook.add_format(
@@ -25,6 +26,12 @@
25
26
  :color => '#006100'
26
27
  )
27
28
 
29
+ # Blue fill with dark blue text.
30
+ format3 = workbook.add_format(
31
+ :bg_color => '#C6CEFF',
32
+ :color => '#0000FF'
33
+ )
34
+
28
35
  # Some sample data to run the conditional formatting against.
29
36
  data = [
30
37
  [ 34, 72, 38, 30, 75, 48, 75, 66, 84, 86 ],
@@ -219,18 +226,19 @@
219
226
  #
220
227
  caption = 'Examples of color scales and data bars. Default colors.'
221
228
 
222
- data = 1 .. 12
229
+ # Use different sample data for examples 7 and 8
230
+ data7 = 1 .. 12
223
231
 
224
232
  worksheet7.write('A1', caption)
225
233
 
226
234
  worksheet7.write('B2', "2 Color Scale")
227
- worksheet7.write_col('B3', data)
235
+ worksheet7.write_col('B3', data7)
228
236
 
229
237
  worksheet7.write('D2', "3 Color Scale")
230
- worksheet7.write_col('D3', data)
238
+ worksheet7.write_col('D3', data7)
231
239
 
232
240
  worksheet7.write('F2', "Data Bars")
233
- worksheet7.write_col('F3', data)
241
+ worksheet7.write_col('F3', data7)
234
242
 
235
243
 
236
244
  worksheet7.conditional_formatting('B3:B14',
@@ -258,18 +266,16 @@
258
266
  #
259
267
  caption = 'Examples of color scales and data bars. Modified colors.'
260
268
 
261
- data = 1 .. 12
262
-
263
269
  worksheet8.write('A1', caption)
264
270
 
265
271
  worksheet8.write('B2', "2 Color Scale")
266
- worksheet8.write_col('B3', data)
272
+ worksheet8.write_col('B3', data7)
267
273
 
268
274
  worksheet8.write('D2', "3 Color Scale")
269
- worksheet8.write_col('D3', data)
275
+ worksheet8.write_col('D3', data7)
270
276
 
271
277
  worksheet8.write('F2', "Data Bars")
272
- worksheet8.write_col('F3', data)
278
+ worksheet8.write_col('F3', data7)
273
279
 
274
280
 
275
281
  worksheet8.conditional_formatting('B3:B14',
@@ -296,4 +302,49 @@
296
302
  }
297
303
  )
298
304
 
305
+ ###############################################################################
306
+ #
307
+ # Example 9
308
+ #
309
+ caption = 'Cells with values >= 100 are always in blue. ' +
310
+ 'Otherwise, cells with values >= 50 are in light red ' +
311
+ 'and values < 50 are in light green.'
312
+
313
+ # Write the data.
314
+ worksheet9.write('A1', caption)
315
+ worksheet9.write_col('B3', data)
316
+
317
+ # Write a conditional format over a range.
318
+ # Use stopIfTrue to prevent previous formats from being used
319
+ # if the conditions of this format are met.
320
+ worksheet9.conditional_formatting('B3:K12',
321
+ {
322
+ :type => 'cell',
323
+ :criteria => '>=',
324
+ :value => 100,
325
+ :format => format3,
326
+ :stop_if_true => 1
327
+ }
328
+ )
329
+
330
+ # Write another conditional format over the same range.
331
+ worksheet9.conditional_formatting('B3:K12',
332
+ {
333
+ :type => 'cell',
334
+ :criteria => '>=',
335
+ :value => 50,
336
+ :format => format1
337
+ }
338
+ )
339
+
340
+ # Write another conditional format over the same range.
341
+ worksheet9.conditional_formatting('B3:K12',
342
+ {
343
+ :type => 'cell',
344
+ :criteria => '<',
345
+ :value => 50,
346
+ :format => format2
347
+ }
348
+ )
349
+
299
350
  workbook.close
@@ -19,13 +19,13 @@
19
19
 
20
20
  # Add a format for the header cells.
21
21
  header_format = workbook.add_format(
22
- :border => 1,
23
- :bg_color => 43,
24
- :bold => 1,
25
- :text_wrap => 1,
26
- :valign => 'vcenter',
27
- :indent => 1
28
- )
22
+ :border => 1,
23
+ :bg_color => '#C6EFCE',
24
+ :bold => 1,
25
+ :text_wrap => 1,
26
+ :valign => 'vcenter',
27
+ :indent => 1
28
+ )
29
29
 
30
30
  # Set up layout of the worksheet.
31
31
  worksheet.set_column('A:A', 68)
@@ -39,7 +39,7 @@
39
39
  header = workbook.add_format(
40
40
  :align => 'center',
41
41
  :valign => 'vcenter',
42
- :fg_color => 0x2A
42
+ :fg_color => '#C3FFC0'
43
43
  )
44
44
 
45
45
  center = workbook.add_format(:align => 'center')
@@ -20,6 +20,6 @@
20
20
  # Worksheet1 will have the default tab colour.
21
21
  worksheet2.tab_color = 'red'
22
22
  worksheet3.tab_color = 'green'
23
- worksheet4.tab_color = 0x35 # Orange
23
+ worksheet4.tab_color = '#FF6600' # Orange
24
24
 
25
25
  workbook.close
@@ -40,7 +40,7 @@ class ChartArea
40
40
  include Writexlsx::Utility
41
41
  include Writexlsx::Gradient
42
42
 
43
- attr_reader :line, :fill, :gradient, :layout
43
+ attr_reader :line, :fill, :pattern, :gradient, :layout
44
44
 
45
45
  def initialize(params = {})
46
46
  @layout = layout_properties(params[:layout])
@@ -51,6 +51,9 @@ def initialize(params = {})
51
51
  # Set the line properties for the chartarea.
52
52
  @line = border ? line_properties(border) : line_properties(params[:line])
53
53
 
54
+ # Set the pattern properties for the series.
55
+ @pattern = pattern_properties(params[:pattern])
56
+
54
57
  # Set the gradient fill properties for the series.
55
58
  @gradient = gradient_properties(params[:gradient])
56
59
 
@@ -58,9 +61,16 @@ def initialize(params = {})
58
61
  fill = params[:color] ? { :color => params[:color] } : params[:fill]
59
62
  @fill = fill_properties(fill)
60
63
 
61
- if ptrue?(@gradient)
64
+ # Pattern fill overrides solid fill.
65
+ if ptrue?(@pattern)
62
66
  @fill = nil
63
67
  end
68
+
69
+ # Gradient fill overrides solid and pattern fills.
70
+ if ptrue?(@gradient)
71
+ @pattern = nil
72
+ @fill = nil
73
+ end
64
74
  end
65
75
 
66
76
  private
@@ -1275,6 +1285,9 @@ def write_cat_axis(params) # :nodoc:
1275
1285
  # Write the c:majorTickMark element.
1276
1286
  write_major_tick_mark(x_axis.major_tick_mark)
1277
1287
 
1288
+ # Write the c:minorTickMark element.
1289
+ write_minor_tick_mark(x_axis.minor_tick_mark)
1290
+
1278
1291
  # Write the c:tickLblPos element.
1279
1292
  write_tick_label_pos(x_axis.label_position)
1280
1293
 
@@ -1298,6 +1311,8 @@ def write_cat_axis(params) # :nodoc:
1298
1311
  write_label_offset(100)
1299
1312
  # Write the c:tickLblSkip element.
1300
1313
  write_tick_lbl_skip(x_axis.interval_unit)
1314
+ # Write the c:tickMarkSkip element.
1315
+ write_tick_mark_skip(x_axis.interval_tick)
1301
1316
  end
1302
1317
  end
1303
1318
 
@@ -1347,6 +1362,9 @@ def write_val_axis_base(x_axis, y_axis, axis_ids_0, axis_ids_1, position) # :no
1347
1362
  # Write the c:majorTickMark element.
1348
1363
  write_major_tick_mark(y_axis.major_tick_mark)
1349
1364
 
1365
+ # Write the c:minorTickMark element.
1366
+ write_minor_tick_mark(y_axis.minor_tick_mark)
1367
+
1350
1368
  # Write the c:tickLblPos element.
1351
1369
  write_tick_label_pos(y_axis.label_position)
1352
1370
 
@@ -1436,6 +1454,8 @@ def write_date_axis(params) # :nodoc:
1436
1454
  write_label_offset(100)
1437
1455
  # Write the c:tickLblSkip element.
1438
1456
  write_tick_lbl_skip(x_axis.interval_unit)
1457
+ # Write the c:tickMarkSkip element.
1458
+ write_tick_mark_skip(x_axis.interval_tick)
1439
1459
  # Write the c:majorUnit element.
1440
1460
  write_c_major_unit(x_axis.major_unit)
1441
1461
  # Write the c:majorTimeUnit element.
@@ -1567,6 +1587,15 @@ def write_major_tick_mark(val)
1567
1587
  @writer.empty_tag('c:majorTickMark', [ ['val', val] ])
1568
1588
  end
1569
1589
 
1590
+ #
1591
+ # Write the <c:minorTickMark> element.
1592
+ #
1593
+ def write_minor_tick_mark(val)
1594
+ return unless ptrue?(val)
1595
+
1596
+ @writer.empty_tag('c:minorTickMark', [ ['val', val] ])
1597
+ end
1598
+
1570
1599
  #
1571
1600
  # Write the <c:tickLblPos> element.
1572
1601
  #
@@ -1630,6 +1659,15 @@ def write_tick_lbl_skip(val) # :nodoc:
1630
1659
  @writer.empty_tag('c:tickLblSkip', [ ['val', val] ])
1631
1660
  end
1632
1661
 
1662
+ #
1663
+ # Write the <c:tickMarkSkip> element.
1664
+ #
1665
+ def write_tick_mark_skip(val) # :nodoc:
1666
+ return unless val
1667
+
1668
+ @writer.empty_tag( 'c:tickMarkSkip', [ ['val', val] ])
1669
+ end
1670
+
1633
1671
  #
1634
1672
  # Write the <c:majorGridlines> element.
1635
1673
  #
@@ -2090,10 +2128,11 @@ def write_symbol(val) # :nodoc:
2090
2128
  def write_sp_pr(series) # :nodoc:
2091
2129
  line = series.line
2092
2130
  fill = series.fill
2131
+ pattern = series.pattern if series.respond_to?(:pattern)
2093
2132
  gradient = series.gradient if series.respond_to?(:gradient)
2094
2133
 
2095
2134
  return if (!line || !ptrue?(line[:_defined])) &&
2096
- (!fill || !ptrue?(fill[:_defined])) && !gradient
2135
+ (!fill || !ptrue?(fill[:_defined])) && !pattern && !gradient
2097
2136
 
2098
2137
  @writer.tag_elements('c:spPr') do
2099
2138
  # Write the fill elements for solid charts such as pie/doughnut and bar.
@@ -2106,6 +2145,9 @@ def write_sp_pr(series) # :nodoc:
2106
2145
  write_a_solid_fill(fill)
2107
2146
  end
2108
2147
  end
2148
+ if ptrue?(pattern)
2149
+ write_a_patt_fill(pattern)
2150
+ end
2109
2151
  if ptrue?(gradient)
2110
2152
  # Write the a:gradFill element.
2111
2153
  write_a_grad_fill(gradient)
@@ -2160,18 +2202,38 @@ def write_a_no_fill # :nodoc:
2160
2202
  #
2161
2203
  # Write the <a:solidFill> element.
2162
2204
  #
2163
- def write_a_solid_fill(line) # :nodoc:
2205
+ def write_a_solid_fill(fill) # :nodoc:
2164
2206
  @writer.tag_elements('a:solidFill') do
2165
- # Write the a:srgbClr element.
2166
- write_a_srgb_clr(color(line[:color])) if line[:color]
2207
+ if fill[:color]
2208
+ # Write the a:srgbClr element.
2209
+ write_a_srgb_clr(color(fill[:color]), fill[:transparency])
2210
+ end
2167
2211
  end
2168
2212
  end
2169
2213
 
2170
2214
  #
2171
2215
  # Write the <a:srgbClr> element.
2172
2216
  #
2173
- def write_a_srgb_clr(val) # :nodoc:
2174
- @writer.empty_tag('a:srgbClr', [ ['val', val] ])
2217
+ def write_a_srgb_clr(color, transparency = nil) # :nodoc:
2218
+ tag = 'a:srgbClr'
2219
+ attributes = [ ['val', color] ]
2220
+
2221
+ if ptrue?(transparency)
2222
+ @writer.tag_elements(tag, attributes) do
2223
+ write_a_alpha(transparency)
2224
+ end
2225
+ else
2226
+ @writer.empty_tag(tag, attributes)
2227
+ end
2228
+ end
2229
+
2230
+ #
2231
+ # Write the <a:alpha> element.
2232
+ #
2233
+ def write_a_alpha(val)
2234
+ val = (100 - val.to_i) * 1000
2235
+
2236
+ @writer.empty_tag('a:alpha', [ ['val', val] ])
2175
2237
  end
2176
2238
 
2177
2239
  #
@@ -2829,6 +2891,26 @@ def write_a_tile_rect(type)
2829
2891
  @writer.empty_tag('a:tileRect', attributes)
2830
2892
  end
2831
2893
 
2894
+ #
2895
+ # Write the <a:pattFill> element.
2896
+ #
2897
+ def write_a_patt_fill(pattern)
2898
+ attributes = [ ['prst', pattern[:pattern]] ]
2899
+
2900
+ @writer.tag_elements('a:pattFill', attributes) do
2901
+ write_a_fg_clr(pattern[:fg_color])
2902
+ write_a_bg_clr(pattern[:bg_color])
2903
+ end
2904
+ end
2905
+
2906
+ def write_a_fg_clr(color)
2907
+ @writer.tag_elements('a:fgClr') { write_a_srgb_clr(color(color)) }
2908
+ end
2909
+
2910
+ def write_a_bg_clr(color)
2911
+ @writer.tag_elements('a:bgClr') { write_a_srgb_clr(color(color)) }
2912
+ end
2913
+
2832
2914
  def write_bars_base(tag, format)
2833
2915
  if format.line_defined? || format.fill_defined?
2834
2916
  @writer.tag_elements(tag) { write_sp_pr(format) }