write_xlsx 0.86.0 → 0.87.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 (864) hide show
  1. checksums.yaml +4 -4
  2. data/Changes +13 -0
  3. data/README.md +4 -4
  4. data/examples/chart_combined.rb +3 -1
  5. data/lib/write_xlsx/chart.rb +50 -3
  6. data/lib/write_xlsx/chart/axis.rb +2 -2
  7. data/lib/write_xlsx/chart/series.rb +26 -10
  8. data/lib/write_xlsx/format.rb +4 -0
  9. data/lib/write_xlsx/package/table.rb +15 -1
  10. data/lib/write_xlsx/utility.rb +85 -0
  11. data/lib/write_xlsx/version.rb +1 -1
  12. data/lib/write_xlsx/workbook.rb +6 -5
  13. data/lib/write_xlsx/worksheet.rb +7 -1
  14. data/test/chart/test_add_series.rb +11 -1
  15. data/test/chart/test_process_names.rb +1 -1
  16. data/test/chart/test_write_a_latin.rb +1 -1
  17. data/test/chart/test_write_auto.rb +1 -1
  18. data/test/chart/test_write_ax_id.rb +1 -1
  19. data/test/chart/test_write_ax_pos.rb +1 -1
  20. data/test/chart/test_write_cross_ax.rb +1 -1
  21. data/test/chart/test_write_crosses.rb +1 -1
  22. data/test/chart/test_write_d_lbls.rb +1 -1
  23. data/test/chart/test_write_format_code.rb +1 -1
  24. data/test/chart/test_write_idx.rb +1 -1
  25. data/test/chart/test_write_label_align.rb +1 -1
  26. data/test/chart/test_write_label_offset.rb +1 -1
  27. data/test/chart/test_write_lang.rb +1 -1
  28. data/test/chart/test_write_layout.rb +1 -1
  29. data/test/chart/test_write_legend.rb +1 -1
  30. data/test/chart/test_write_legend_pos.rb +1 -1
  31. data/test/chart/test_write_major_gridlines.rb +1 -1
  32. data/test/chart/test_write_marker.rb +1 -1
  33. data/test/chart/test_write_marker_size.rb +1 -1
  34. data/test/chart/test_write_marker_value.rb +1 -1
  35. data/test/chart/test_write_num_cache.rb +1 -1
  36. data/test/chart/test_write_number_format.rb +2 -3
  37. data/test/chart/test_write_order.rb +1 -1
  38. data/test/chart/test_write_orientation.rb +1 -1
  39. data/test/chart/test_write_page_margins.rb +1 -1
  40. data/test/chart/test_write_page_setup.rb +1 -1
  41. data/test/chart/test_write_plot_vis_only.rb +1 -1
  42. data/test/chart/test_write_pt.rb +1 -1
  43. data/test/chart/test_write_pt_count.rb +1 -1
  44. data/test/chart/test_write_series_formula.rb +1 -1
  45. data/test/chart/test_write_style.rb +1 -1
  46. data/test/chart/test_write_symbol.rb +1 -1
  47. data/test/chart/test_write_tick_lbl_pos.rb +1 -1
  48. data/test/chart/test_write_v.rb +1 -1
  49. data/test/chartsheet/test_chartsheet01.rb +1 -1
  50. data/test/drawing/test_drawing_chart_01.rb +1 -1
  51. data/test/drawing/test_drawing_image_01.rb +1 -1
  52. data/test/drawing/test_drawing_shape_01.rb +1 -1
  53. data/test/drawing/test_drawing_shape_02.rb +1 -1
  54. data/test/drawing/test_drawing_shape_03.rb +1 -1
  55. data/test/drawing/test_drawing_shape_04.rb +1 -1
  56. data/test/drawing/test_drawing_shape_05.rb +1 -1
  57. data/test/drawing/test_drawing_shape_06.rb +1 -1
  58. data/test/drawing/test_drawing_shape_07.rb +1 -1
  59. data/test/drawing/test_write_a_graphic_frame_locks.rb +1 -1
  60. data/test/drawing/test_write_c_chart.rb +1 -1
  61. data/test/drawing/test_write_c_nv_graphic_frame_pr.rb +1 -1
  62. data/test/drawing/test_write_c_nv_pr.rb +1 -1
  63. data/test/drawing/test_write_col.rb +1 -1
  64. data/test/drawing/test_write_col_off.rb +1 -1
  65. data/test/drawing/test_write_ext.rb +1 -1
  66. data/test/drawing/test_write_pos.rb +1 -1
  67. data/test/drawing/test_write_row.rb +1 -1
  68. data/test/drawing/test_write_row_off.rb +1 -1
  69. data/test/drawing/test_write_xfrm_extension.rb +1 -1
  70. data/test/drawing/test_write_xfrm_offset.rb +1 -1
  71. data/test/helper.rb +2 -2
  72. data/test/package/app/test_app01.rb +1 -1
  73. data/test/package/app/test_app02.rb +1 -1
  74. data/test/package/app/test_app03.rb +1 -1
  75. data/test/package/comments/test_write_text_t.rb +1 -1
  76. data/test/package/content_types/test_content_types.rb +1 -1
  77. data/test/package/content_types/test_write_default.rb +1 -1
  78. data/test/package/content_types/test_write_override.rb +1 -1
  79. data/test/package/core/test_core01.rb +1 -1
  80. data/test/package/core/test_core02.rb +1 -1
  81. data/test/package/relationships/test_relationships.rb +1 -1
  82. data/test/package/relationships/test_sheet_rels.rb +1 -1
  83. data/test/package/shared_strings/test_shared_strings01.rb +1 -1
  84. data/test/package/shared_strings/test_shared_strings02.rb +1 -1
  85. data/test/package/shared_strings/test_write_si.rb +1 -7
  86. data/test/package/styles/test_styles_01.rb +1 -1
  87. data/test/package/styles/test_styles_02.rb +1 -1
  88. data/test/package/styles/test_styles_03.rb +1 -1
  89. data/test/package/styles/test_styles_04.rb +1 -1
  90. data/test/package/styles/test_styles_05.rb +1 -1
  91. data/test/package/styles/test_styles_06.rb +1 -1
  92. data/test/package/styles/test_styles_07.rb +1 -1
  93. data/test/package/styles/test_styles_08.rb +1 -1
  94. data/test/package/styles/test_styles_09.rb +1 -1
  95. data/test/package/table/test_table01.rb +3 -3
  96. data/test/package/table/test_table02.rb +2 -2
  97. data/test/package/table/test_table03.rb +2 -2
  98. data/test/package/table/test_table04.rb +2 -2
  99. data/test/package/table/test_table05.rb +2 -2
  100. data/test/package/table/test_table06.rb +2 -2
  101. data/test/package/table/test_table07.rb +2 -2
  102. data/test/package/table/test_table08.rb +2 -2
  103. data/test/package/table/test_table09.rb +2 -2
  104. data/test/package/table/test_table10.rb +2 -2
  105. data/test/package/table/test_table11.rb +2 -2
  106. data/test/package/table/test_table12.rb +2 -2
  107. data/test/package/table/test_table13.rb +1 -1
  108. data/test/package/table/test_write_auto_filter.rb +1 -1
  109. data/test/package/table/test_write_table_column.rb +1 -1
  110. data/test/package/table/test_write_table_style_info.rb +1 -1
  111. data/test/package/vml/test_write_auto_fill.rb +1 -1
  112. data/test/package/vml/test_write_div.rb +1 -1
  113. data/test/package/vml/test_write_idmap.rb +1 -1
  114. data/test/package/vml/test_write_path.rb +1 -1
  115. data/test/package/vml/test_write_shapelayout.rb +1 -1
  116. data/test/package/vml/test_write_shapetype.rb +1 -1
  117. data/test/package/vml/test_write_stroke.rb +1 -1
  118. data/test/regression/disabled_test_vml04.rb +1 -1
  119. data/test/regression/test_array_formula01.rb +1 -1
  120. data/test/regression/test_array_formula02.rb +1 -1
  121. data/test/regression/test_autofilter00.rb +1 -1
  122. data/test/regression/test_autofilter01.rb +1 -1
  123. data/test/regression/test_autofilter02.rb +1 -1
  124. data/test/regression/test_autofilter03.rb +1 -1
  125. data/test/regression/test_autofilter04.rb +1 -1
  126. data/test/regression/test_autofilter05.rb +1 -1
  127. data/test/regression/test_autofilter06.rb +1 -1
  128. data/test/regression/test_autofilter07.rb +1 -1
  129. data/test/regression/test_button01.rb +1 -1
  130. data/test/regression/test_button02.rb +1 -1
  131. data/test/regression/test_button03.rb +1 -1
  132. data/test/regression/test_button04.rb +1 -1
  133. data/test/regression/test_button05.rb +1 -1
  134. data/test/regression/test_button06.rb +1 -1
  135. data/test/regression/test_button07.rb +1 -1
  136. data/test/regression/test_button08.rb +1 -1
  137. data/test/regression/test_button13.rb +1 -1
  138. data/test/regression/test_button14.rb +1 -1
  139. data/test/regression/test_chart_area01.rb +1 -1
  140. data/test/regression/test_chart_area02.rb +1 -1
  141. data/test/regression/test_chart_area03.rb +1 -1
  142. data/test/regression/test_chart_area04.rb +1 -1
  143. data/test/regression/test_chart_axis01.rb +1 -1
  144. data/test/regression/test_chart_axis02.rb +1 -1
  145. data/test/regression/test_chart_axis03.rb +1 -1
  146. data/test/regression/test_chart_axis04.rb +1 -1
  147. data/test/regression/test_chart_axis05.rb +1 -1
  148. data/test/regression/test_chart_axis06.rb +1 -1
  149. data/test/regression/test_chart_axis07.rb +1 -1
  150. data/test/regression/test_chart_axis08.rb +1 -1
  151. data/test/regression/test_chart_axis09.rb +1 -1
  152. data/test/regression/test_chart_axis10.rb +1 -1
  153. data/test/regression/test_chart_axis11.rb +1 -1
  154. data/test/regression/test_chart_axis12.rb +1 -1
  155. data/test/regression/test_chart_axis13.rb +1 -1
  156. data/test/regression/test_chart_axis14.rb +1 -1
  157. data/test/regression/test_chart_axis15.rb +1 -1
  158. data/test/regression/test_chart_axis16.rb +1 -1
  159. data/test/regression/test_chart_axis17.rb +1 -1
  160. data/test/regression/test_chart_axis18.rb +1 -1
  161. data/test/regression/test_chart_axis19.rb +1 -1
  162. data/test/regression/test_chart_axis20.rb +1 -1
  163. data/test/regression/test_chart_axis21.rb +1 -1
  164. data/test/regression/test_chart_axis22.rb +1 -1
  165. data/test/regression/test_chart_axis23.rb +1 -1
  166. data/test/regression/test_chart_axis24.rb +1 -1
  167. data/test/regression/test_chart_axis25.rb +1 -1
  168. data/test/regression/test_chart_axis26.rb +1 -1
  169. data/test/regression/test_chart_axis27.rb +1 -1
  170. data/test/regression/test_chart_axis28.rb +1 -1
  171. data/test/regression/test_chart_axis29.rb +1 -1
  172. data/test/regression/test_chart_axis30.rb +1 -1
  173. data/test/regression/test_chart_axis31.rb +1 -1
  174. data/test/regression/test_chart_axis32.rb +1 -1
  175. data/test/regression/test_chart_axis33.rb +1 -1
  176. data/test/regression/test_chart_axis34.rb +1 -1
  177. data/test/regression/test_chart_axis35.rb +1 -1
  178. data/test/regression/test_chart_axis36.rb +1 -1
  179. data/test/regression/test_chart_axis37.rb +1 -1
  180. data/test/regression/test_chart_axis38.rb +1 -1
  181. data/test/regression/test_chart_axis39.rb +1 -1
  182. data/test/regression/test_chart_axis40.rb +44 -0
  183. data/test/regression/test_chart_bar01.rb +1 -1
  184. data/test/regression/test_chart_bar02.rb +1 -1
  185. data/test/regression/test_chart_bar03.rb +1 -1
  186. data/test/regression/test_chart_bar04.rb +1 -1
  187. data/test/regression/test_chart_bar05.rb +1 -1
  188. data/test/regression/test_chart_bar06.rb +1 -1
  189. data/test/regression/test_chart_bar07.rb +1 -1
  190. data/test/regression/test_chart_bar08.rb +1 -1
  191. data/test/regression/test_chart_bar09.rb +1 -1
  192. data/test/regression/test_chart_bar10.rb +1 -1
  193. data/test/regression/test_chart_bar11.rb +1 -1
  194. data/test/regression/test_chart_bar12.rb +1 -1
  195. data/test/regression/test_chart_bar13.rb +1 -1
  196. data/test/regression/test_chart_bar14.rb +1 -1
  197. data/test/regression/test_chart_bar15.rb +1 -1
  198. data/test/regression/test_chart_bar16.rb +1 -1
  199. data/test/regression/test_chart_bar17.rb +1 -1
  200. data/test/regression/test_chart_bar18.rb +1 -1
  201. data/test/regression/test_chart_bar19.rb +1 -1
  202. data/test/regression/test_chart_bar20.rb +1 -1
  203. data/test/regression/test_chart_bar21.rb +1 -1
  204. data/test/regression/test_chart_bar22.rb +1 -1
  205. data/test/regression/test_chart_bar23.rb +1 -1
  206. data/test/regression/test_chart_bar24.rb +1 -1
  207. data/test/regression/test_chart_blank01.rb +1 -1
  208. data/test/regression/test_chart_blank02.rb +1 -1
  209. data/test/regression/test_chart_blank03.rb +1 -1
  210. data/test/regression/test_chart_blank04.rb +1 -1
  211. data/test/regression/test_chart_blank05.rb +1 -1
  212. data/test/regression/test_chart_blank06.rb +1 -1
  213. data/test/regression/test_chart_chartarea01.rb +1 -1
  214. data/test/regression/test_chart_chartarea02.rb +1 -1
  215. data/test/regression/test_chart_chartarea03.rb +1 -1
  216. data/test/regression/test_chart_chartarea04.rb +1 -1
  217. data/test/regression/test_chart_chartarea05.rb +1 -1
  218. data/test/regression/test_chart_clustered01.rb +1 -1
  219. data/test/regression/test_chart_column01.rb +1 -1
  220. data/test/regression/test_chart_column02.rb +1 -1
  221. data/test/regression/test_chart_column03.rb +1 -1
  222. data/test/regression/test_chart_column04.rb +1 -1
  223. data/test/regression/test_chart_column05.rb +1 -1
  224. data/test/regression/test_chart_column06.rb +1 -1
  225. data/test/regression/test_chart_column07.rb +1 -1
  226. data/test/regression/test_chart_column08.rb +1 -1
  227. data/test/regression/test_chart_column09.rb +1 -1
  228. data/test/regression/test_chart_column10.rb +1 -1
  229. data/test/regression/test_chart_column11.rb +1 -1
  230. data/test/regression/test_chart_column12.rb +1 -1
  231. data/test/regression/test_chart_combined01.rb +1 -1
  232. data/test/regression/test_chart_combined02.rb +1 -1
  233. data/test/regression/test_chart_combined03.rb +1 -1
  234. data/test/regression/test_chart_combined04.rb +1 -1
  235. data/test/regression/test_chart_combined05.rb +1 -1
  236. data/test/regression/test_chart_combined06.rb +1 -1
  237. data/test/regression/test_chart_combined07.rb +1 -1
  238. data/test/regression/test_chart_combined08.rb +1 -1
  239. data/test/regression/test_chart_combined09.rb +50 -0
  240. data/test/regression/test_chart_crossing01.rb +1 -1
  241. data/test/regression/test_chart_crossing02.rb +1 -1
  242. data/test/regression/test_chart_crossing03.rb +1 -1
  243. data/test/regression/test_chart_crossing04.rb +1 -1
  244. data/test/regression/test_chart_data_labels01.rb +1 -1
  245. data/test/regression/test_chart_data_labels02.rb +1 -1
  246. data/test/regression/test_chart_data_labels03.rb +1 -1
  247. data/test/regression/test_chart_data_labels04.rb +1 -1
  248. data/test/regression/test_chart_data_labels05.rb +1 -1
  249. data/test/regression/test_chart_data_labels06.rb +1 -1
  250. data/test/regression/test_chart_data_labels07.rb +1 -1
  251. data/test/regression/test_chart_data_labels08.rb +1 -1
  252. data/test/regression/test_chart_data_labels09.rb +1 -1
  253. data/test/regression/test_chart_data_labels10.rb +1 -1
  254. data/test/regression/test_chart_data_labels11.rb +1 -1
  255. data/test/regression/test_chart_data_labels12.rb +1 -1
  256. data/test/regression/test_chart_data_labels13.rb +1 -1
  257. data/test/regression/test_chart_data_labels14.rb +1 -1
  258. data/test/regression/test_chart_data_labels15.rb +1 -1
  259. data/test/regression/test_chart_data_labels16.rb +1 -1
  260. data/test/regression/test_chart_data_labels17.rb +1 -1
  261. data/test/regression/test_chart_data_labels18.rb +1 -1
  262. data/test/regression/test_chart_data_labels19.rb +1 -1
  263. data/test/regression/test_chart_data_labels20.rb +1 -1
  264. data/test/regression/test_chart_data_labels21.rb +1 -1
  265. data/test/regression/test_chart_data_labels22.rb +1 -1
  266. data/test/regression/test_chart_data_labels23.rb +1 -1
  267. data/test/regression/test_chart_data_labels24.rb +1 -1
  268. data/test/regression/test_chart_date01.rb +1 -1
  269. data/test/regression/test_chart_date02.rb +1 -1
  270. data/test/regression/test_chart_date03.rb +1 -1
  271. data/test/regression/test_chart_date04.rb +1 -1
  272. data/test/regression/test_chart_date05.rb +1 -1
  273. data/test/regression/test_chart_display_units01.rb +1 -1
  274. data/test/regression/test_chart_display_units02.rb +1 -1
  275. data/test/regression/test_chart_display_units03.rb +1 -1
  276. data/test/regression/test_chart_display_units04.rb +1 -1
  277. data/test/regression/test_chart_display_units05.rb +1 -1
  278. data/test/regression/test_chart_display_units06.rb +1 -1
  279. data/test/regression/test_chart_display_units07.rb +1 -1
  280. data/test/regression/test_chart_display_units08.rb +1 -1
  281. data/test/regression/test_chart_display_units09.rb +1 -1
  282. data/test/regression/test_chart_display_units10.rb +1 -1
  283. data/test/regression/test_chart_display_units11.rb +1 -1
  284. data/test/regression/test_chart_display_units12.rb +1 -1
  285. data/test/regression/test_chart_doughnut01.rb +1 -1
  286. data/test/regression/test_chart_doughnut02.rb +1 -1
  287. data/test/regression/test_chart_doughnut03.rb +1 -1
  288. data/test/regression/test_chart_doughnut04.rb +1 -1
  289. data/test/regression/test_chart_doughnut05.rb +1 -1
  290. data/test/regression/test_chart_doughnut06.rb +1 -1
  291. data/test/regression/test_chart_drop_lines01.rb +1 -1
  292. data/test/regression/test_chart_drop_lines02.rb +1 -1
  293. data/test/regression/test_chart_drop_lines03.rb +1 -1
  294. data/test/regression/test_chart_drop_lines04.rb +1 -1
  295. data/test/regression/test_chart_errorbars01.rb +1 -1
  296. data/test/regression/test_chart_errorbars02.rb +1 -1
  297. data/test/regression/test_chart_errorbars03.rb +1 -1
  298. data/test/regression/test_chart_errorbars04.rb +1 -1
  299. data/test/regression/test_chart_errorbars05.rb +1 -1
  300. data/test/regression/test_chart_errorbars06.rb +1 -1
  301. data/test/regression/test_chart_errorbars07.rb +1 -1
  302. data/test/regression/test_chart_errorbars08.rb +1 -1
  303. data/test/regression/test_chart_errorbars09.rb +1 -1
  304. data/test/regression/test_chart_errorbars10.rb +1 -1
  305. data/test/regression/test_chart_font01.rb +1 -1
  306. data/test/regression/test_chart_font02.rb +1 -1
  307. data/test/regression/test_chart_font03.rb +1 -1
  308. data/test/regression/test_chart_font04.rb +1 -1
  309. data/test/regression/test_chart_font05.rb +1 -1
  310. data/test/regression/test_chart_font06.rb +1 -1
  311. data/test/regression/test_chart_font07.rb +1 -1
  312. data/test/regression/test_chart_font08.rb +1 -1
  313. data/test/regression/test_chart_font09.rb +1 -1
  314. data/test/regression/test_chart_format01.rb +1 -1
  315. data/test/regression/test_chart_format02.rb +1 -1
  316. data/test/regression/test_chart_format03.rb +1 -1
  317. data/test/regression/test_chart_format04.rb +1 -1
  318. data/test/regression/test_chart_format05.rb +1 -1
  319. data/test/regression/test_chart_format06.rb +1 -1
  320. data/test/regression/test_chart_format07.rb +1 -1
  321. data/test/regression/test_chart_format08.rb +1 -1
  322. data/test/regression/test_chart_format09.rb +1 -1
  323. data/test/regression/test_chart_format10.rb +1 -1
  324. data/test/regression/test_chart_format11.rb +1 -1
  325. data/test/regression/test_chart_format12.rb +1 -1
  326. data/test/regression/test_chart_format13.rb +1 -1
  327. data/test/regression/test_chart_format14.rb +1 -1
  328. data/test/regression/test_chart_format15.rb +1 -1
  329. data/test/regression/test_chart_format16.rb +1 -1
  330. data/test/regression/test_chart_format17.rb +1 -1
  331. data/test/regression/test_chart_format18.rb +1 -1
  332. data/test/regression/test_chart_format19.rb +1 -1
  333. data/test/regression/test_chart_format20.rb +1 -1
  334. data/test/regression/test_chart_gap01.rb +1 -1
  335. data/test/regression/test_chart_gap02.rb +1 -1
  336. data/test/regression/test_chart_gap03.rb +1 -1
  337. data/test/regression/test_chart_gap04.rb +1 -1
  338. data/test/regression/test_chart_gap05.rb +1 -1
  339. data/test/regression/test_chart_gradient01.rb +1 -1
  340. data/test/regression/test_chart_gradient02.rb +1 -1
  341. data/test/regression/test_chart_gradient03.rb +1 -1
  342. data/test/regression/test_chart_gradient04.rb +1 -1
  343. data/test/regression/test_chart_gradient05.rb +1 -1
  344. data/test/regression/test_chart_gradient06.rb +1 -1
  345. data/test/regression/test_chart_gradient07.rb +1 -1
  346. data/test/regression/test_chart_gradient08.rb +1 -1
  347. data/test/regression/test_chart_gradient09.rb +1 -1
  348. data/test/regression/test_chart_gradient10.rb +1 -1
  349. data/test/regression/test_chart_gradient11.rb +1 -1
  350. data/test/regression/test_chart_gradient12.rb +1 -1
  351. data/test/regression/test_chart_gradient13.rb +1 -1
  352. data/test/regression/test_chart_gridlines01.rb +1 -1
  353. data/test/regression/test_chart_gridlines02.rb +1 -1
  354. data/test/regression/test_chart_gridlines03.rb +1 -1
  355. data/test/regression/test_chart_gridlines04.rb +1 -1
  356. data/test/regression/test_chart_gridlines05.rb +1 -1
  357. data/test/regression/test_chart_gridlines06.rb +1 -1
  358. data/test/regression/test_chart_gridlines07.rb +1 -1
  359. data/test/regression/test_chart_gridlines08.rb +1 -1
  360. data/test/regression/test_chart_gridlines09.rb +1 -1
  361. data/test/regression/test_chart_layout01.rb +1 -1
  362. data/test/regression/test_chart_layout02.rb +1 -1
  363. data/test/regression/test_chart_layout03.rb +1 -1
  364. data/test/regression/test_chart_layout04.rb +1 -1
  365. data/test/regression/test_chart_layout05.rb +1 -1
  366. data/test/regression/test_chart_layout06.rb +1 -1
  367. data/test/regression/test_chart_layout07.rb +1 -1
  368. data/test/regression/test_chart_layout08.rb +1 -1
  369. data/test/regression/test_chart_legend01.rb +1 -1
  370. data/test/regression/test_chart_legend02.rb +1 -1
  371. data/test/regression/test_chart_line01.rb +1 -1
  372. data/test/regression/test_chart_line02.rb +1 -1
  373. data/test/regression/test_chart_line03.rb +1 -1
  374. data/test/regression/test_chart_line04.rb +1 -1
  375. data/test/regression/test_chart_name01.rb +1 -1
  376. data/test/regression/test_chart_name02.rb +1 -1
  377. data/test/regression/test_chart_name03.rb +1 -1
  378. data/test/regression/test_chart_order01.rb +1 -1
  379. data/test/regression/test_chart_order02.rb +1 -1
  380. data/test/regression/test_chart_order03.rb +1 -1
  381. data/test/regression/test_chart_pattern01.rb +49 -0
  382. data/test/regression/test_chart_pattern02.rb +106 -0
  383. data/test/regression/test_chart_pattern03.rb +105 -0
  384. data/test/regression/test_chart_pattern04.rb +105 -0
  385. data/test/regression/test_chart_pattern05.rb +105 -0
  386. data/test/regression/test_chart_pattern06.rb +105 -0
  387. data/test/regression/test_chart_pattern07.rb +105 -0
  388. data/test/regression/test_chart_pattern08.rb +105 -0
  389. data/test/regression/test_chart_pattern09.rb +57 -0
  390. data/test/regression/test_chart_pattern10.rb +57 -0
  391. data/test/regression/test_chart_pie01.rb +1 -1
  392. data/test/regression/test_chart_pie02.rb +1 -1
  393. data/test/regression/test_chart_pie03.rb +1 -1
  394. data/test/regression/test_chart_pie04.rb +1 -1
  395. data/test/regression/test_chart_pie05.rb +1 -1
  396. data/test/regression/test_chart_points01.rb +1 -1
  397. data/test/regression/test_chart_points02.rb +1 -1
  398. data/test/regression/test_chart_points03.rb +1 -1
  399. data/test/regression/test_chart_points04.rb +1 -1
  400. data/test/regression/test_chart_points05.rb +1 -1
  401. data/test/regression/test_chart_points06.rb +1 -1
  402. data/test/regression/test_chart_radar01.rb +1 -1
  403. data/test/regression/test_chart_radar02.rb +1 -1
  404. data/test/regression/test_chart_radar03.rb +1 -1
  405. data/test/regression/test_chart_scatter01.rb +1 -1
  406. data/test/regression/test_chart_scatter02.rb +1 -1
  407. data/test/regression/test_chart_scatter03.rb +1 -1
  408. data/test/regression/test_chart_scatter04.rb +1 -1
  409. data/test/regression/test_chart_scatter05.rb +1 -1
  410. data/test/regression/test_chart_scatter06.rb +1 -1
  411. data/test/regression/test_chart_scatter07.rb +1 -1
  412. data/test/regression/test_chart_scatter08.rb +1 -1
  413. data/test/regression/test_chart_scatter09.rb +1 -1
  414. data/test/regression/test_chart_scatter10.rb +1 -1
  415. data/test/regression/test_chart_scatter11.rb +1 -1
  416. data/test/regression/test_chart_scatter12.rb +1 -1
  417. data/test/regression/test_chart_scatter13.rb +1 -1
  418. data/test/regression/test_chart_scatter14.rb +1 -1
  419. data/test/regression/test_chart_scatter15.rb +1 -1
  420. data/test/regression/test_chart_size01.rb +1 -1
  421. data/test/regression/test_chart_size02.rb +1 -1
  422. data/test/regression/test_chart_size03.rb +1 -1
  423. data/test/regression/test_chart_size04.rb +1 -1
  424. data/test/regression/test_chart_size05.rb +1 -1
  425. data/test/regression/test_chart_sparse01.rb +1 -1
  426. data/test/regression/test_chart_stock01.rb +1 -1
  427. data/test/regression/test_chart_stock02.rb +1 -1
  428. data/test/regression/test_chart_str01.rb +1 -1
  429. data/test/regression/test_chart_str02.rb +1 -1
  430. data/test/regression/test_chart_table01.rb +1 -1
  431. data/test/regression/test_chart_table02.rb +1 -1
  432. data/test/regression/test_chart_title01.rb +1 -1
  433. data/test/regression/test_chart_title02.rb +1 -1
  434. data/test/regression/test_chartsheet01.rb +1 -1
  435. data/test/regression/test_chartsheet02.rb +1 -1
  436. data/test/regression/test_chartsheet03.rb +1 -1
  437. data/test/regression/test_chartsheet04.rb +1 -1
  438. data/test/regression/test_chartsheet05.rb +1 -1
  439. data/test/regression/test_chartsheet06.rb +1 -1
  440. data/test/regression/test_chartsheet07.rb +1 -1
  441. data/test/regression/test_chartsheet08.rb +1 -1
  442. data/test/regression/test_chartsheet09.rb +1 -1
  443. data/test/regression/test_comment01.rb +1 -1
  444. data/test/regression/test_comment02.rb +1 -1
  445. data/test/regression/test_comment03.rb +1 -1
  446. data/test/regression/test_comment04.rb +1 -1
  447. data/test/regression/test_comment06.rb +1 -1
  448. data/test/regression/test_comment07.rb +1 -1
  449. data/test/regression/test_comment08.rb +1 -1
  450. data/test/regression/test_comment09.rb +1 -1
  451. data/test/regression/test_comment10.rb +1 -1
  452. data/test/regression/test_comment11.rb +1 -1
  453. data/test/regression/test_comment12.rb +1 -1
  454. data/test/regression/test_cond_format01.rb +1 -1
  455. data/test/regression/test_cond_format02.rb +1 -1
  456. data/test/regression/test_cond_format03.rb +1 -1
  457. data/test/regression/test_cond_format04.rb +1 -1
  458. data/test/regression/test_cond_format05.rb +1 -1
  459. data/test/regression/test_cond_format06.rb +1 -1
  460. data/test/regression/test_cond_format07.rb +1 -1
  461. data/test/regression/test_cond_format08.rb +1 -1
  462. data/test/regression/test_cond_format10.rb +1 -1
  463. data/test/regression/test_cond_format11.rb +1 -1
  464. data/test/regression/test_cond_format12.rb +1 -1
  465. data/test/regression/test_cond_format13.rb +1 -1
  466. data/test/regression/test_custom_colors01.rb +1 -1
  467. data/test/regression/test_data_validation01.rb +1 -1
  468. data/test/regression/test_data_validation02.rb +1 -1
  469. data/test/regression/test_data_validation03.rb +1 -1
  470. data/test/regression/test_data_validation04.rb +2 -2
  471. data/test/regression/test_data_validation05.rb +2 -2
  472. data/test/regression/test_data_validation08.rb +2 -2
  473. data/test/regression/test_date_1904_01.rb +1 -1
  474. data/test/regression/test_date_1904_02.rb +1 -1
  475. data/test/regression/test_date_examples01.rb +1 -1
  476. data/test/regression/test_default_format01.rb +1 -1
  477. data/test/regression/test_default_row01.rb +1 -1
  478. data/test/regression/test_default_row02.rb +1 -1
  479. data/test/regression/test_default_row03.rb +1 -1
  480. data/test/regression/test_default_row04.rb +1 -1
  481. data/test/regression/test_default_row05.rb +32 -0
  482. data/test/regression/test_defined_name01.rb +1 -1
  483. data/test/regression/test_defined_name02.rb +1 -1
  484. data/test/regression/test_defined_name03.rb +1 -1
  485. data/test/regression/test_defined_name04.rb +15 -15
  486. data/test/regression/test_escapes01.rb +1 -1
  487. data/test/regression/test_escapes02.rb +1 -1
  488. data/test/regression/test_escapes03.rb +1 -1
  489. data/test/regression/test_escapes04.rb +1 -1
  490. data/test/regression/test_escapes05.rb +1 -1
  491. data/test/regression/test_escapes06.rb +1 -1
  492. data/test/regression/test_escapes07.rb +1 -1
  493. data/test/regression/test_escapes08.rb +1 -1
  494. data/test/regression/test_excel2003_style01.rb +1 -1
  495. data/test/regression/test_excel2003_style02.rb +1 -1
  496. data/test/regression/test_excel2003_style03.rb +1 -1
  497. data/test/regression/test_excel2003_style04.rb +1 -1
  498. data/test/regression/test_excel2003_style05.rb +1 -1
  499. data/test/regression/test_excel2003_style06.rb +1 -1
  500. data/test/regression/test_excel2003_style07.rb +1 -1
  501. data/test/regression/test_excel2003_style08.rb +1 -1
  502. data/test/regression/test_firstsheet01.rb +1 -1
  503. data/test/regression/test_fit_to_pages01.rb +1 -1
  504. data/test/regression/test_fit_to_pages02.rb +1 -1
  505. data/test/regression/test_fit_to_pages03.rb +1 -1
  506. data/test/regression/test_fit_to_pages04.rb +1 -1
  507. data/test/regression/test_fit_to_pages05.rb +1 -1
  508. data/test/regression/test_format01.rb +1 -1
  509. data/test/regression/test_format02.rb +1 -1
  510. data/test/regression/test_format03.rb +1 -1
  511. data/test/regression/test_format04.rb +1 -1
  512. data/test/regression/test_format05.rb +1 -1
  513. data/test/regression/test_format11.rb +1 -1
  514. data/test/regression/test_format12.rb +1 -1
  515. data/test/regression/test_format13.rb +31 -0
  516. data/test/regression/test_formula_results01.rb +1 -1
  517. data/test/regression/test_gridlines01.rb +1 -1
  518. data/test/regression/test_header01.rb +1 -1
  519. data/test/regression/test_header02.rb +1 -1
  520. data/test/regression/test_header03.rb +1 -1
  521. data/test/regression/test_header_image01.rb +1 -1
  522. data/test/regression/test_header_image02.rb +1 -1
  523. data/test/regression/test_header_image03.rb +1 -1
  524. data/test/regression/test_header_image04.rb +1 -1
  525. data/test/regression/test_header_image05.rb +1 -1
  526. data/test/regression/test_header_image06.rb +1 -1
  527. data/test/regression/test_header_image07.rb +1 -1
  528. data/test/regression/test_header_image08.rb +1 -1
  529. data/test/regression/test_header_image09.rb +1 -1
  530. data/test/regression/test_header_image10.rb +1 -1
  531. data/test/regression/test_header_image11.rb +1 -1
  532. data/test/regression/test_header_image12.rb +1 -1
  533. data/test/regression/test_header_image13.rb +1 -1
  534. data/test/regression/test_header_image14.rb +1 -1
  535. data/test/regression/test_hide01.rb +1 -1
  536. data/test/regression/test_hyperlink01.rb +1 -1
  537. data/test/regression/test_hyperlink02.rb +1 -1
  538. data/test/regression/test_hyperlink03.rb +1 -1
  539. data/test/regression/test_hyperlink04.rb +1 -1
  540. data/test/regression/test_hyperlink05.rb +1 -1
  541. data/test/regression/test_hyperlink06.rb +1 -1
  542. data/test/regression/test_hyperlink07.rb +1 -1
  543. data/test/regression/test_hyperlink08.rb +1 -1
  544. data/test/regression/test_hyperlink09.rb +1 -1
  545. data/test/regression/test_hyperlink10.rb +1 -1
  546. data/test/regression/test_hyperlink11.rb +1 -1
  547. data/test/regression/test_hyperlink12.rb +1 -1
  548. data/test/regression/test_hyperlink13.rb +1 -1
  549. data/test/regression/test_hyperlink14.rb +1 -1
  550. data/test/regression/test_hyperlink15.rb +1 -1
  551. data/test/regression/test_hyperlink16.rb +1 -1
  552. data/test/regression/test_hyperlink17.rb +1 -1
  553. data/test/regression/test_hyperlink18.rb +1 -1
  554. data/test/regression/test_hyperlink20.rb +1 -1
  555. data/test/regression/test_hyperlink21.rb +1 -1
  556. data/test/regression/test_hyperlink22.rb +1 -1
  557. data/test/regression/test_hyperlink23.rb +1 -1
  558. data/test/regression/test_hyperlink24.rb +1 -1
  559. data/test/regression/test_image01.rb +1 -1
  560. data/test/regression/test_image02.rb +1 -1
  561. data/test/regression/test_image03.rb +1 -1
  562. data/test/regression/test_image04.rb +1 -1
  563. data/test/regression/test_image05.rb +1 -1
  564. data/test/regression/test_image06.rb +1 -1
  565. data/test/regression/test_image07.rb +1 -1
  566. data/test/regression/test_image08.rb +1 -1
  567. data/test/regression/test_image09.rb +1 -1
  568. data/test/regression/test_image10.rb +1 -1
  569. data/test/regression/test_image11.rb +1 -1
  570. data/test/regression/test_image12.rb +1 -1
  571. data/test/regression/test_image13.rb +1 -1
  572. data/test/regression/test_image14.rb +1 -1
  573. data/test/regression/test_image15.rb +1 -1
  574. data/test/regression/test_image16.rb +1 -1
  575. data/test/regression/test_image17.rb +1 -1
  576. data/test/regression/test_image18.rb +1 -1
  577. data/test/regression/test_image19.rb +1 -1
  578. data/test/regression/test_image22.rb +1 -1
  579. data/test/regression/test_image23.rb +1 -1
  580. data/test/regression/test_image24.rb +1 -1
  581. data/test/regression/test_image25.rb +1 -1
  582. data/test/regression/test_image26.rb +1 -1
  583. data/test/regression/test_image27.rb +1 -1
  584. data/test/regression/test_image28.rb +2 -2
  585. data/test/regression/test_image29.rb +2 -2
  586. data/test/regression/test_image30.rb +1 -1
  587. data/test/regression/test_image31.rb +1 -1
  588. data/test/regression/test_image32.rb +1 -1
  589. data/test/regression/test_image33.rb +2 -2
  590. data/test/regression/test_landscape01.rb +1 -1
  591. data/test/regression/test_macro01.rb +1 -1
  592. data/test/regression/test_merge_cells01.rb +1 -1
  593. data/test/regression/test_merge_range01.rb +1 -1
  594. data/test/regression/test_merge_range02.rb +1 -1
  595. data/test/regression/test_merge_range03.rb +1 -1
  596. data/test/regression/test_merge_range04.rb +1 -1
  597. data/test/regression/test_merge_range05.rb +1 -1
  598. data/test/regression/test_outline01.rb +1 -1
  599. data/test/regression/test_outline02.rb +1 -1
  600. data/test/regression/test_outline03.rb +1 -1
  601. data/test/regression/test_outline04.rb +1 -1
  602. data/test/regression/test_outline05.rb +1 -1
  603. data/test/regression/test_outline06.rb +1 -1
  604. data/test/regression/test_page_breaks01.rb +1 -1
  605. data/test/regression/test_page_breaks02.rb +1 -1
  606. data/test/regression/test_page_breaks03.rb +1 -1
  607. data/test/regression/test_page_breaks04.rb +1 -1
  608. data/test/regression/test_page_breaks05.rb +1 -1
  609. data/test/regression/test_page_breaks06.rb +1 -1
  610. data/test/regression/test_page_view01.rb +1 -1
  611. data/test/regression/test_panes01.rb +1 -1
  612. data/test/regression/test_print_across01.rb +1 -1
  613. data/test/regression/test_print_area01.rb +1 -1
  614. data/test/regression/test_print_area02.rb +1 -1
  615. data/test/regression/test_print_area03.rb +1 -1
  616. data/test/regression/test_print_area04.rb +1 -1
  617. data/test/regression/test_print_area05.rb +1 -1
  618. data/test/regression/test_print_area06.rb +1 -1
  619. data/test/regression/test_print_area07.rb +1 -1
  620. data/test/regression/test_print_options01.rb +1 -1
  621. data/test/regression/test_print_options02.rb +1 -1
  622. data/test/regression/test_print_options03.rb +1 -1
  623. data/test/regression/test_print_options04.rb +1 -1
  624. data/test/regression/test_print_options05.rb +1 -1
  625. data/test/regression/test_print_options06.rb +1 -1
  626. data/test/regression/test_print_options07.rb +1 -1
  627. data/test/regression/test_print_scale01.rb +1 -1
  628. data/test/regression/test_print_scale02.rb +1 -1
  629. data/test/regression/test_properties01.rb +1 -1
  630. data/test/regression/test_properties02.rb +1 -1
  631. data/test/regression/test_protect01.rb +1 -1
  632. data/test/regression/test_protect02.rb +1 -1
  633. data/test/regression/test_protect03.rb +1 -1
  634. data/test/regression/test_quote_name01.rb +1 -1
  635. data/test/regression/test_quote_name03.rb +1 -1
  636. data/test/regression/test_quote_name04.rb +1 -1
  637. data/test/regression/test_repeat01.rb +1 -1
  638. data/test/regression/test_repeat02.rb +1 -1
  639. data/test/regression/test_repeat03.rb +1 -1
  640. data/test/regression/test_repeat04.rb +1 -1
  641. data/test/regression/test_repeat05.rb +1 -1
  642. data/test/regression/test_rich_string01.rb +1 -1
  643. data/test/regression/test_rich_string02.rb +1 -1
  644. data/test/regression/test_rich_string03.rb +1 -1
  645. data/test/regression/test_rich_string04.rb +1 -1
  646. data/test/regression/test_rich_string05.rb +1 -1
  647. data/test/regression/test_rich_string06.rb +1 -1
  648. data/test/regression/test_rich_string07.rb +1 -1
  649. data/test/regression/test_rich_string08.rb +1 -1
  650. data/test/regression/test_rich_string09.rb +1 -1
  651. data/test/regression/test_rich_string10.rb +1 -1
  652. data/test/regression/test_rich_string11.rb +1 -1
  653. data/test/regression/test_rich_string12.rb +1 -1
  654. data/test/regression/test_row_col_format01.rb +1 -1
  655. data/test/regression/test_row_col_format02.rb +1 -1
  656. data/test/regression/test_row_col_format03.rb +1 -1
  657. data/test/regression/test_row_col_format04.rb +1 -1
  658. data/test/regression/test_row_col_format05.rb +1 -1
  659. data/test/regression/test_row_col_format06.rb +1 -1
  660. data/test/regression/test_row_col_format07.rb +1 -1
  661. data/test/regression/test_row_col_format08.rb +1 -1
  662. data/test/regression/test_row_col_format09.rb +1 -1
  663. data/test/regression/test_row_col_format10.rb +1 -1
  664. data/test/regression/test_row_col_format11.rb +1 -1
  665. data/test/regression/test_row_col_format12.rb +1 -1
  666. data/test/regression/test_row_col_format13.rb +1 -1
  667. data/test/regression/test_row_col_format14.rb +1 -1
  668. data/test/regression/test_selection01.rb +1 -1
  669. data/test/regression/test_selection02.rb +1 -1
  670. data/test/regression/test_set_column01.rb +1 -1
  671. data/test/regression/test_set_column02.rb +1 -1
  672. data/test/regression/test_set_column03.rb +1 -1
  673. data/test/regression/test_set_column04.rb +1 -1
  674. data/test/regression/test_set_column05.rb +1 -1
  675. data/test/regression/test_set_column06.rb +1 -1
  676. data/test/regression/test_set_column07.rb +1 -1
  677. data/test/regression/test_set_column08.rb +1 -1
  678. data/test/regression/test_set_column09.rb +1 -1
  679. data/test/regression/test_set_print_scale01.rb +1 -1
  680. data/test/regression/test_set_start_page01.rb +1 -1
  681. data/test/regression/test_set_start_page02.rb +1 -1
  682. data/test/regression/test_set_start_page03.rb +1 -1
  683. data/test/regression/test_shape01.rb +1 -1
  684. data/test/regression/test_shape02.rb +1 -1
  685. data/test/regression/test_shape03.rb +1 -1
  686. data/test/regression/test_shape04.rb +1 -1
  687. data/test/regression/test_shape_connect01.rb +1 -1
  688. data/test/regression/test_shape_connect02.rb +1 -1
  689. data/test/regression/test_shape_connect03.rb +1 -1
  690. data/test/regression/test_shape_connect04.rb +1 -1
  691. data/test/regression/test_shape_scale01.rb +1 -1
  692. data/test/regression/test_shape_stencil01.rb +1 -1
  693. data/test/regression/test_shared_strings01.rb +1 -1
  694. data/test/regression/test_shared_strings02.rb +1 -1
  695. data/test/regression/test_simple01.rb +1 -1
  696. data/test/regression/test_simple02.rb +1 -1
  697. data/test/regression/test_simple03.rb +1 -1
  698. data/test/regression/test_simple04.rb +1 -1
  699. data/test/regression/test_simple05.rb +1 -1
  700. data/test/regression/test_tab_color01.rb +1 -1
  701. data/test/regression/test_table01.rb +1 -1
  702. data/test/regression/test_table02.rb +1 -1
  703. data/test/regression/test_table03.rb +1 -1
  704. data/test/regression/test_table04.rb +1 -1
  705. data/test/regression/test_table05.rb +1 -1
  706. data/test/regression/test_table06.rb +1 -1
  707. data/test/regression/test_table07.rb +1 -1
  708. data/test/regression/test_table08.rb +1 -1
  709. data/test/regression/test_table09.rb +1 -1
  710. data/test/regression/test_table10.rb +1 -1
  711. data/test/regression/test_table11.rb +1 -1
  712. data/test/regression/test_table12.rb +1 -1
  713. data/test/regression/test_table13.rb +1 -1
  714. data/test/regression/test_table14.rb +1 -1
  715. data/test/regression/test_table15.rb +1 -1
  716. data/test/regression/test_table16.rb +1 -1
  717. data/test/regression/test_table17.rb +1 -1
  718. data/test/regression/test_tutorial01.rb +1 -1
  719. data/test/regression/test_tutorial02.rb +1 -1
  720. data/test/regression/test_tutorial03.rb +1 -1
  721. data/test/regression/test_update_range_format_with_params.rb +1 -1
  722. data/test/regression/test_urls_as_strings.rb +1 -1
  723. data/test/regression/test_utf8_01.rb +1 -1
  724. data/test/regression/test_utf8_03.rb +1 -1
  725. data/test/regression/test_utf8_04.rb +1 -1
  726. data/test/regression/test_utf8_05.rb +1 -1
  727. data/test/regression/test_utf8_06.rb +1 -1
  728. data/test/regression/test_utf8_07.rb +1 -1
  729. data/test/regression/test_utf8_08.rb +1 -1
  730. data/test/regression/test_utf8_09.rb +1 -1
  731. data/test/regression/test_utf8_10.rb +1 -1
  732. data/test/regression/test_vml01.rb +1 -1
  733. data/test/regression/test_vml02.rb +1 -1
  734. data/test/regression/test_vml03.rb +1 -1
  735. data/test/regression/xlsx_files/chart_axis40.xlsx +0 -0
  736. data/test/regression/xlsx_files/chart_combined09.xlsx +0 -0
  737. data/test/regression/xlsx_files/chart_pattern01.xlsx +0 -0
  738. data/test/regression/xlsx_files/chart_pattern02.xlsx +0 -0
  739. data/test/regression/xlsx_files/chart_pattern03.xlsx +0 -0
  740. data/test/regression/xlsx_files/chart_pattern04.xlsx +0 -0
  741. data/test/regression/xlsx_files/chart_pattern05.xlsx +0 -0
  742. data/test/regression/xlsx_files/chart_pattern06.xlsx +0 -0
  743. data/test/regression/xlsx_files/chart_pattern07.xlsx +0 -0
  744. data/test/regression/xlsx_files/chart_pattern08.xlsx +0 -0
  745. data/test/regression/xlsx_files/chart_pattern09.xlsx +0 -0
  746. data/test/regression/xlsx_files/chart_pattern10.xlsx +0 -0
  747. data/test/regression/xlsx_files/default_row05.xlsx +0 -0
  748. data/test/regression/xlsx_files/format13.xlsx +0 -0
  749. data/test/test_delete_files.rb +3 -3
  750. data/test/test_example_match.rb +1 -1
  751. data/test/test_option_hash_for_workbook.rb +1 -1
  752. data/test/test_xml_writer_simple.rb +1 -1
  753. data/test/workbook/test_define_name.rb +1 -1
  754. data/test/workbook/test_get_chart_range.rb +3 -5
  755. data/test/workbook/test_sort_defined_names.rb +1 -1
  756. data/test/workbook/test_workbook_01.rb +1 -1
  757. data/test/workbook/test_workbook_02.rb +1 -1
  758. data/test/workbook/test_workbook_03.rb +1 -1
  759. data/test/workbook/test_write_calc_pr.rb +1 -1
  760. data/test/workbook/test_write_defined_name.rb +1 -1
  761. data/test/workbook/test_write_defined_names.rb +1 -1
  762. data/test/worksheet/test_calculate_spans.rb +1 -1
  763. data/test/worksheet/test_cond_format_01.rb +1 -1
  764. data/test/worksheet/test_cond_format_02.rb +1 -1
  765. data/test/worksheet/test_cond_format_03.rb +1 -1
  766. data/test/worksheet/test_cond_format_04.rb +1 -1
  767. data/test/worksheet/test_cond_format_05.rb +1 -1
  768. data/test/worksheet/test_cond_format_06.rb +1 -1
  769. data/test/worksheet/test_cond_format_07.rb +1 -1
  770. data/test/worksheet/test_cond_format_08.rb +1 -1
  771. data/test/worksheet/test_cond_format_09.rb +1 -1
  772. data/test/worksheet/test_cond_format_10.rb +1 -1
  773. data/test/worksheet/test_cond_format_11.rb +1 -1
  774. data/test/worksheet/test_cond_format_12.rb +1 -1
  775. data/test/worksheet/test_cond_format_13.rb +1 -1
  776. data/test/worksheet/test_cond_format_14.rb +1 -1
  777. data/test/worksheet/test_cond_format_15.rb +1 -1
  778. data/test/worksheet/test_cond_format_16.rb +1 -1
  779. data/test/worksheet/test_cond_format_17.rb +1 -1
  780. data/test/worksheet/test_cond_format_18.rb +1 -1
  781. data/test/worksheet/test_cond_format_19.rb +1 -1
  782. data/test/worksheet/test_cond_format_20.rb +1 -1
  783. data/test/worksheet/test_cond_format_21.rb +2 -2
  784. data/test/worksheet/test_convert_date_time_01.rb +1 -1
  785. data/test/worksheet/test_convert_date_time_02.rb +1 -1
  786. data/test/worksheet/test_convert_date_time_03.rb +1 -1
  787. data/test/worksheet/test_convert_date_time_04.rb +1 -1
  788. data/test/worksheet/test_extract_filter_tokens.rb +1 -1
  789. data/test/worksheet/test_parse_filter_expression.rb +1 -1
  790. data/test/worksheet/test_position_object.rb +1 -1
  791. data/test/worksheet/test_repeat_formula.rb +1 -1
  792. data/test/worksheet/test_sparkline_01.rb +1 -1
  793. data/test/worksheet/test_sparkline_02.rb +1 -1
  794. data/test/worksheet/test_sparkline_03.rb +1 -1
  795. data/test/worksheet/test_sparkline_04.rb +1 -1
  796. data/test/worksheet/test_sparkline_05.rb +1 -1
  797. data/test/worksheet/test_sparkline_06.rb +1 -1
  798. data/test/worksheet/test_sparkline_07.rb +1 -1
  799. data/test/worksheet/test_sparkline_08.rb +1 -1
  800. data/test/worksheet/test_sparkline_09.rb +1 -1
  801. data/test/worksheet/test_sparkline_10.rb +1 -1
  802. data/test/worksheet/test_sparkline_11.rb +1 -1
  803. data/test/worksheet/test_sparkline_12.rb +1 -1
  804. data/test/worksheet/test_update_format_methods.rb +9 -29
  805. data/test/worksheet/test_worksheet_01.rb +1 -1
  806. data/test/worksheet/test_worksheet_02.rb +1 -1
  807. data/test/worksheet/test_worksheet_03.rb +1 -1
  808. data/test/worksheet/test_worksheet_04.rb +1 -1
  809. data/test/worksheet/test_write_array_formula_01.rb +1 -8
  810. data/test/worksheet/test_write_autofilter.rb +1 -1
  811. data/test/worksheet/test_write_brk.rb +1 -1
  812. data/test/worksheet/test_write_cell.rb +1 -1
  813. data/test/worksheet/test_write_cell_value.rb +1 -1
  814. data/test/worksheet/test_write_col_breaks.rb +1 -1
  815. data/test/worksheet/test_write_col_info.rb +1 -1
  816. data/test/worksheet/test_write_conditional_formatting.rb +1 -1
  817. data/test/worksheet/test_write_custom_filter.rb +1 -1
  818. data/test/worksheet/test_write_custom_filters.rb +1 -1
  819. data/test/worksheet/test_write_data_validation_01.rb +1 -1
  820. data/test/worksheet/test_write_data_validation_02.rb +1 -1
  821. data/test/worksheet/test_write_dimension.rb +1 -1
  822. data/test/worksheet/test_write_filter.rb +1 -1
  823. data/test/worksheet/test_write_filter_column.rb +1 -1
  824. data/test/worksheet/test_write_filters.rb +1 -1
  825. data/test/worksheet/test_write_formula_does_not_change_formula_string.rb +1 -1
  826. data/test/worksheet/test_write_header_footer.rb +1 -1
  827. data/test/worksheet/test_write_hyperlink.rb +1 -1
  828. data/test/worksheet/test_write_legacy_drawing.rb +1 -1
  829. data/test/worksheet/test_write_merge_cell.rb +1 -1
  830. data/test/worksheet/test_write_merge_cells.rb +1 -1
  831. data/test/worksheet/test_write_methods.rb +68 -177
  832. data/test/worksheet/test_write_page_margins.rb +1 -1
  833. data/test/worksheet/test_write_page_set_up_pr.rb +1 -1
  834. data/test/worksheet/test_write_page_setup.rb +1 -1
  835. data/test/worksheet/test_write_pane.rb +1 -1
  836. data/test/worksheet/test_write_phonetic_pr.rb +1 -1
  837. data/test/worksheet/test_write_print_options.rb +1 -1
  838. data/test/worksheet/test_write_row_breaks.rb +1 -1
  839. data/test/worksheet/test_write_row_element.rb +1 -1
  840. data/test/worksheet/test_write_selection.rb +1 -1
  841. data/test/worksheet/test_write_sheet_calc_pr.rb +1 -1
  842. data/test/worksheet/test_write_sheet_data.rb +1 -1
  843. data/test/worksheet/test_write_sheet_format_pr.rb +1 -1
  844. data/test/worksheet/test_write_sheet_pr.rb +1 -1
  845. data/test/worksheet/test_write_sheet_protection.rb +1 -1
  846. data/test/worksheet/test_write_sheet_view.rb +1 -1
  847. data/test/worksheet/test_write_sheet_view1.rb +1 -1
  848. data/test/worksheet/test_write_sheet_view2.rb +1 -1
  849. data/test/worksheet/test_write_sheet_view3.rb +1 -1
  850. data/test/worksheet/test_write_sheet_view4.rb +1 -1
  851. data/test/worksheet/test_write_sheet_view5.rb +1 -1
  852. data/test/worksheet/test_write_sheet_view6.rb +1 -1
  853. data/test/worksheet/test_write_sheet_view7.rb +1 -1
  854. data/test/worksheet/test_write_sheet_view8.rb +1 -1
  855. data/test/worksheet/test_write_sheet_view9.rb +1 -1
  856. data/test/worksheet/test_write_tab_color.rb +1 -1
  857. data/test/worksheet/test_write_worksheet_attributes.rb +1 -1
  858. data/write_xlsx.gemspec +2 -2
  859. metadata +60 -14
  860. data/test/test_col_name.rb +0 -13
  861. data/test/workbook/test_workbook_new.rb +0 -18
  862. data/test/worksheet/test_format.rb +0 -17
  863. data/test/worksheet/test_write_multiline_string_with_url.rb +0 -30
  864. data/test/worksheet/test_write_url.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 794b9b3028ff50abeab1e2c85d951fdc38526887ef6e2d64c6125afe697b4f92
4
- data.tar.gz: 0a460f71a4cb05d4f72d7ad77308dbcda504b06f0e56ceceb7d0a9a6e0c0514f
3
+ metadata.gz: 6e7cdfffc65c56b8de477d41c1126ebd46a7d6e63aee6d6660bab0e9283be2c6
4
+ data.tar.gz: c62748b94058a7021e796b88031b7d126b8508ce9ece50bdaa7455a620d8403b
5
5
  SHA512:
6
- metadata.gz: b51f580ca37d7586f3faa6bafebeb76f2b14129070a0e7e70fe9d648e75e504983ad2ad97976ba49b3a8bb5af598826f54aa982dd73a7044132f32044bac6469
7
- data.tar.gz: 661206fe8a1eeb9878329559ee9bf5f2a8f12db9515fba264368fe2f9df8711bffe4bb2457a51fb993dcb7aa74ce1c1fcd9740b6b05c6666edebae9288e2e66c
6
+ metadata.gz: 0042aea94458add0013ceefed1e734593692c00f9dc32d8b02fef80093b2e62d3510ef62e84481c74acbf0436e8fe8223485a562a76ec8fd011724e2869c5b1e
7
+ data.tar.gz: 0bb9fed1ec24707d52b7557c256579606c39eadb716bfdc4acb5e5e6b13f0792fb3627e75f16aef375675160d57556fff7f02af6fea8e4819bbdb244f96657e9
data/Changes CHANGED
@@ -1,5 +1,18 @@
1
1
  Change history of write_xlsx rubygem.
2
2
 
3
+ 2020-12-26 v0.87.0
4
+
5
+ Added chart pattern and gradient fills.
6
+
7
+ Added option to set chart tick interval.
8
+
9
+ Add checks for valid and non-duplicate worksheet table names.
10
+
11
+ Added support for table header formatting and a fix for wrapped lines in
12
+ the header.
13
+
14
+ use minitest instead of test-unit
15
+
3
16
  2020-11-01 v0.86.0
4
17
  Fix for images with negative offsets.
5
18
 
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.86](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)
@@ -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
@@ -1298,6 +1308,8 @@ def write_cat_axis(params) # :nodoc:
1298
1308
  write_label_offset(100)
1299
1309
  # Write the c:tickLblSkip element.
1300
1310
  write_tick_lbl_skip(x_axis.interval_unit)
1311
+ # Write the c:tickMarkSkip element.
1312
+ write_tick_mark_skip(x_axis.interval_tick)
1301
1313
  end
1302
1314
  end
1303
1315
 
@@ -1436,6 +1448,8 @@ def write_date_axis(params) # :nodoc:
1436
1448
  write_label_offset(100)
1437
1449
  # Write the c:tickLblSkip element.
1438
1450
  write_tick_lbl_skip(x_axis.interval_unit)
1451
+ # Write the c:tickMarkSkip element.
1452
+ write_tick_mark_skip(x_axis.interval_tick)
1439
1453
  # Write the c:majorUnit element.
1440
1454
  write_c_major_unit(x_axis.major_unit)
1441
1455
  # Write the c:majorTimeUnit element.
@@ -1630,6 +1644,15 @@ def write_tick_lbl_skip(val) # :nodoc:
1630
1644
  @writer.empty_tag('c:tickLblSkip', [ ['val', val] ])
1631
1645
  end
1632
1646
 
1647
+ #
1648
+ # Write the <c:tickMarkSkip> element.
1649
+ #
1650
+ def write_tick_mark_skip(val) # :nodoc:
1651
+ return unless val
1652
+
1653
+ @writer.empty_tag( 'c:tickMarkSkip', [ ['val', val] ])
1654
+ end
1655
+
1633
1656
  #
1634
1657
  # Write the <c:majorGridlines> element.
1635
1658
  #
@@ -2090,10 +2113,11 @@ def write_symbol(val) # :nodoc:
2090
2113
  def write_sp_pr(series) # :nodoc:
2091
2114
  line = series.line
2092
2115
  fill = series.fill
2116
+ pattern = series.pattern if series.respond_to?(:pattern)
2093
2117
  gradient = series.gradient if series.respond_to?(:gradient)
2094
2118
 
2095
2119
  return if (!line || !ptrue?(line[:_defined])) &&
2096
- (!fill || !ptrue?(fill[:_defined])) && !gradient
2120
+ (!fill || !ptrue?(fill[:_defined])) && !pattern && !gradient
2097
2121
 
2098
2122
  @writer.tag_elements('c:spPr') do
2099
2123
  # Write the fill elements for solid charts such as pie/doughnut and bar.
@@ -2106,6 +2130,9 @@ def write_sp_pr(series) # :nodoc:
2106
2130
  write_a_solid_fill(fill)
2107
2131
  end
2108
2132
  end
2133
+ if ptrue?(pattern)
2134
+ write_a_patt_fill(pattern)
2135
+ end
2109
2136
  if ptrue?(gradient)
2110
2137
  # Write the a:gradFill element.
2111
2138
  write_a_grad_fill(gradient)
@@ -2829,6 +2856,26 @@ def write_a_tile_rect(type)
2829
2856
  @writer.empty_tag('a:tileRect', attributes)
2830
2857
  end
2831
2858
 
2859
+ #
2860
+ # Write the <a:pattFill> element.
2861
+ #
2862
+ def write_a_patt_fill(pattern)
2863
+ attributes = [ ['prst', pattern[:pattern]] ]
2864
+
2865
+ @writer.tag_elements('a:pattFill', attributes) do
2866
+ write_a_fg_clr(pattern[:fg_color])
2867
+ write_a_bg_clr(pattern[:bg_color])
2868
+ end
2869
+ end
2870
+
2871
+ def write_a_fg_clr(color)
2872
+ @writer.tag_elements('a:fgClr') { write_a_srgb_clr(color(color)) }
2873
+ end
2874
+
2875
+ def write_a_bg_clr(color)
2876
+ @writer.tag_elements('a:bgClr') { write_a_srgb_clr(color(color)) }
2877
+ end
2878
+
2832
2879
  def write_bars_base(tag, format)
2833
2880
  if format.line_defined? || format.fill_defined?
2834
2881
  @writer.tag_elements(tag) { write_sp_pr(format) }
@@ -14,7 +14,7 @@ class Axis < Caption
14
14
  attr_reader :display_units_visible, :display_units
15
15
  attr_reader :log_base, :crossing, :position_axis, :label_position, :visible
16
16
  attr_reader :num_format_linked, :num_font, :layout, :interval_unit
17
- attr_reader :major_gridlines, :minor_gridlines, :reverse
17
+ attr_reader :interval_tick, :major_gridlines, :minor_gridlines, :reverse
18
18
  attr_reader :line, :fill, :text_axis
19
19
  #
20
20
  # Convert user defined axis values into axis instance.
@@ -27,7 +27,7 @@ def merge_with_hash(params) # :nodoc:
27
27
  :reverse, :min, :max, :minor_unit, :major_unit, :minor_unit_type,
28
28
  :major_unit_type, :log_base, :crossing, :position_axis,
29
29
  :label_position, :num_format, :num_format_linked, :interval_unit,
30
- :major_tick_mark, :line, :fill
30
+ :interval_tick, :major_tick_mark, :line, :fill
31
31
  ].each { |val| instance_variable_set("@#{val}", args[val]) }
32
32
  @visible = args[:visible] || 1
33
33
 
@@ -8,22 +8,30 @@ class Chartline
8
8
  include Writexlsx::Utility
9
9
  include Writexlsx::Gradient
10
10
 
11
- attr_reader :line, :fill, :type
11
+ attr_reader :line, :fill, :type, :gradient, :pattern
12
12
 
13
13
  def initialize(params)
14
14
  @line = params[:line]
15
15
  @fill = params[:fill]
16
+ @pattern = params[:pattern]
17
+ @gradient = params[:gradient]
16
18
  # Set the line properties for the marker..
17
19
  @line = line_properties(@line)
18
20
  # Allow 'border' as a synonym for 'line'.
19
21
  @line = line_properties(params[:border]) if params[:border]
20
-
21
- # Set the gradient fill properties for the series.
22
- @gradient = gradient_properties(params[:gradient])
23
-
24
22
  # Set the fill properties for the marker.
25
23
  @fill = fill_properties(@fill)
24
+ # Set the pattern properties for the series.
25
+ @pattern = pattern_properties(@pattern)
26
+ # Set the gradient fill properties for the series.
27
+ @gradient = gradient_properties(@gradient)
28
+ # Pattern fill overrides solid fill.
26
29
  @fill = nil if ptrue?(@gradient)
30
+ # Gradient fill overrides solid and pattern fills.
31
+ if ptrue?(@gradient)
32
+ @pattern = nil
33
+ @fill = nil
34
+ end
27
35
  end
28
36
 
29
37
  def line_defined?
@@ -170,7 +178,7 @@ class Series
170
178
  include Writexlsx::Gradient
171
179
 
172
180
  attr_reader :values, :categories, :name, :name_formula, :name_id
173
- attr_reader :cat_data_id, :val_data_id, :fill, :gradient
181
+ attr_reader :cat_data_id, :val_data_id, :fill, :pattern, :gradient
174
182
  attr_reader :trendline, :smooth, :labels, :invert_if_negative
175
183
  attr_reader :x2_axis, :y2_axis, :error_bars, :points
176
184
  attr_accessor :line, :marker
@@ -184,13 +192,21 @@ def initialize(chart, params = {})
184
192
 
185
193
  set_data_ids(params)
186
194
 
187
- @line = line_properties(params[:border] || params[:line])
188
- @fill = fill_properties(params[:fill])
189
-
195
+ @line = line_properties(params[:border] || params[:line])
196
+ @fill = fill_properties(params[:fill])
197
+ @pattern = pattern_properties(params[:pattern])
190
198
  @gradient = gradient_properties(params[:gradient])
191
- @fill = nil if ptrue?(@gradient)
199
+ # Pattern fill overrides solid fill.
200
+ @fill = nil if ptrue?(@pattern)
201
+ # Gradient fill overrides solid and patter fills.
202
+ if ptrue?(@gradient)
203
+ @pattern = nil
204
+ @fill = nil
205
+ end
192
206
 
207
+ # Set the marker properties for the series.
193
208
  @marker = Marker.new(params[:marker]) if params[:marker]
209
+ # Set the trendline properties for the series.
194
210
  @trendline = Trendline.new(params[:trendline]) if params[:trendline]
195
211
  @error_bars = errorbars(params[:x_error_bars], params[:y_error_bars])
196
212
  @points = params[:points].collect { |p| p ? Point.new(p) : p } if params[:points]
@@ -844,6 +844,10 @@ def write_font_family_scheme(writer)
844
844
  writer.empty_tag('family', [ ['val', @font_family] ])
845
845
  end
846
846
 
847
+ if ptrue?(@font_charset)
848
+ writer.empty_tag('charset', [ ['val', @font_charset] ])
849
+ end
850
+
847
851
  if @font == 'Calibri' && !ptrue?(@hyperlink)
848
852
  writer.empty_tag('scheme', [ ['val', @font_scheme] ])
849
853
  end
@@ -277,8 +277,22 @@ def set_the_table_style
277
277
  def set_the_table_name
278
278
  if @param[:name]
279
279
  name = @param[:name]
280
+
281
+ # Raise if the name contains invalid chars as defined by Excel help.
282
+ if name !~ /^[\w\\][\w\\.]*$/ || name =~ /^\d/
283
+ raise "Invalid character in name '#{name} used in add_table()"
284
+ end
285
+
286
+ # Raise if the name looks like a cell name.
287
+ if name =~ /^[a-zA-Z][a-zA-Z]?[a-dA-D]?[0-9]+$/
288
+ ralse "Invalid name '#{name}' looks like a cell name in add_table()"
289
+ end
290
+
291
+ # Raise if the name looks like a R1C1.
292
+ if name =~ /^[rcRC]$/ || name =~ /^[rcRC]\d+[rcRC]\d+$/
293
+ raise "Invalid name '#{name}' like a RC cell ref in add_table()"
294
+ end
280
295
 
281
- raise "Name '#{name} in add_table cannot contain spaces" if name =~ /\s/
282
296
  @name = @param[:name]
283
297
  end
284
298
  end
@@ -543,6 +543,91 @@ def fill_properties(fill) # :nodoc:
543
543
  line_fill_properties(fill)
544
544
  end
545
545
 
546
+ #
547
+ # Convert user defined pattern properties to the structure required internally.
548
+ #
549
+ def pattern_properties(args) # :nodoc:
550
+ pattern = {}
551
+
552
+ return nil unless args
553
+
554
+ # Check the pattern type is present.
555
+ return nil unless args.has_key?(:pattern)
556
+
557
+ # Check the foreground color is present.
558
+ retuen nil unless args.has_key?(:fg_color)
559
+
560
+ types = {
561
+ 'percent_5' => 'pct5',
562
+ 'percent_10' => 'pct10',
563
+ 'percent_20' => 'pct20',
564
+ 'percent_25' => 'pct25',
565
+ 'percent_30' => 'pct30',
566
+ 'percent_40' => 'pct40',
567
+
568
+ 'percent_50' => 'pct50',
569
+ 'percent_60' => 'pct60',
570
+ 'percent_70' => 'pct70',
571
+ 'percent_75' => 'pct75',
572
+ 'percent_80' => 'pct80',
573
+ 'percent_90' => 'pct90',
574
+
575
+ 'light_downward_diagonal' => 'ltDnDiag',
576
+ 'light_upward_diagonal' => 'ltUpDiag',
577
+ 'dark_downward_diagonal' => 'dkDnDiag',
578
+ 'dark_upward_diagonal' => 'dkUpDiag',
579
+ 'wide_downward_diagonal' => 'wdDnDiag',
580
+ 'wide_upward_diagonal' => 'wdUpDiag',
581
+
582
+ 'light_vertical' => 'ltVert',
583
+ 'light_horizontal' => 'ltHorz',
584
+ 'narrow_vertical' => 'narVert',
585
+ 'narrow_horizontal' => 'narHorz',
586
+ 'dark_vertical' => 'dkVert',
587
+ 'dark_horizontal' => 'dkHorz',
588
+
589
+ 'dashed_downward_diagonal' => 'dashDnDiag',
590
+ 'dashed_upward_diagonal' => 'dashUpDiag',
591
+ 'dashed_horizontal' => 'dashHorz',
592
+ 'dashed_vertical' => 'dashVert',
593
+ 'small_confetti' => 'smConfetti',
594
+ 'large_confetti' => 'lgConfetti',
595
+
596
+ 'zigzag' => 'zigZag',
597
+ 'wave' => 'wave',
598
+ 'diagonal_brick' => 'diagBrick',
599
+ 'horizontal_brick' => 'horzBrick',
600
+ 'weave' => 'weave',
601
+ 'plaid' => 'plaid',
602
+
603
+ 'divot' => 'divot',
604
+ 'dotted_grid' => 'dotGrid',
605
+ 'dotted_diamond' => 'dotDmnd',
606
+ 'shingle' => 'shingle',
607
+ 'trellis' => 'trellis',
608
+ 'sphere' => 'sphere',
609
+
610
+ 'small_grid' => 'smGrid',
611
+ 'large_grid' => 'lgGrid',
612
+ 'small_check' => 'smCheck',
613
+ 'large_check' => 'lgCheck',
614
+ 'outlined_diamond' => 'openDmnd',
615
+ 'solid_diamond' => 'solidDmnd'
616
+ }
617
+
618
+ # Check for valid types.
619
+ if types[args[:pattern]]
620
+ pattern[:pattern] = types[args[:pattern]]
621
+ else
622
+ raise "Unknown pattern type '#{args[:pattern]}'"
623
+ end
624
+
625
+ pattern[:bg_color] = args[:bg_color] || '#FFFFFF'
626
+ pattern[:fg_color] = args[:fg_color]
627
+
628
+ pattern
629
+ end
630
+
546
631
  def line_fill_properties(params)
547
632
  return { :_defined => 0 } unless params
548
633
  ret = params.dup
@@ -1 +1 @@
1
- WriteXLSX_VERSION = "0.86.0"
1
+ WriteXLSX_VERSION = "0.87.0"
@@ -726,7 +726,7 @@ def define_name(name, formula)
726
726
 
727
727
  # Raise if the sheet index wasn't found.
728
728
  if !sheet_index
729
- raise "Unknown sheet name #{sheetname} in defined_name()\n"
729
+ raise "Unknown sheet name #{sheetname} in defined_name()"
730
730
  end
731
731
 
732
732
  # Raise if the name contains invalid chars as defined by Excel help.
@@ -734,17 +734,17 @@ def define_name(name, formula)
734
734
  # http://office.microsoft.com/en-001/excel-help/define-and-use-names-in-formulas-HA010147120.aspx#BMsyntax_rules_for_names
735
735
  #
736
736
  if name =~ /\A[-0-9 !"#\$%&'\(\)\*\+,\.:;<=>\?@\[\]\^`\{\}~]/ || name =~ /.+[- !"#\$%&'\(\)\*\+,\\:;<=>\?@\[\]\^`\{\}~]/
737
- raise "Invalid characters in name '#{name}' used in defined_name()\n"
737
+ raise "Invalid characters in name '#{name}' used in defined_name()"
738
738
  end
739
739
 
740
740
  # Raise if the name looks like a cell name.
741
741
  if name =~ %r(^[a-zA-Z][a-zA-Z]?[a-dA-D]?[0-9]+$)
742
- raise "Invalid name '#{name}' looks like a cell name in defined_name()\n"
742
+ raise "Invalid name '#{name}' looks like a cell name in defined_name()"
743
743
  end
744
744
 
745
745
  # Raise if the name looks like a R1C1
746
746
  if name =~ /\A[rcRC]\Z/ || name =~ /\A[rcRC]\d+[rcRC]\d+\Z/
747
- raise "Invalid name '#{name}' like a RC cell ref in defined_name()\n"
747
+ raise "Invalid name '#{name}' like a RC cell ref in defined_name()"
748
748
  end
749
749
 
750
750
  @defined_names.push([ name, sheet_index, formula.sub(/^=/, '') ])
@@ -1633,9 +1633,10 @@ def prepare_vml_objects #:nodoc:
1633
1633
  #
1634
1634
  def prepare_tables
1635
1635
  table_id = 0
1636
+ seen = {}
1636
1637
 
1637
1638
  sheets.each do |sheet|
1638
- table_id += sheet.prepare_tables(table_id + 1)
1639
+ table_id += sheet.prepare_tables(table_id + 1, seen)
1639
1640
  end
1640
1641
  end
1641
1642