write_xlsx 0.86.0 → 0.97.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (975) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +43 -0
  3. data/Changes +74 -0
  4. data/LICENSE.txt +1 -1
  5. data/README.md +4 -4
  6. data/examples/a_simple.rb +1 -6
  7. data/examples/chart_combined.rb +3 -1
  8. data/examples/conditional_format.rb +73 -46
  9. data/examples/demo.rb +1 -7
  10. data/examples/hyperlink1.rb +4 -11
  11. data/lib/write_xlsx/chart.rb +150 -192
  12. data/lib/write_xlsx/chart/axis.rb +33 -8
  13. data/lib/write_xlsx/chart/caption.rb +3 -1
  14. data/lib/write_xlsx/chart/pie.rb +2 -0
  15. data/lib/write_xlsx/chart/series.rb +37 -17
  16. data/lib/write_xlsx/format.rb +19 -11
  17. data/lib/write_xlsx/package/conditional_format.rb +351 -38
  18. data/lib/write_xlsx/package/content_types.rb +10 -0
  19. data/lib/write_xlsx/package/core.rb +8 -6
  20. data/lib/write_xlsx/package/custom.rb +125 -0
  21. data/lib/write_xlsx/package/packager.rb +26 -0
  22. data/lib/write_xlsx/package/styles.rb +53 -21
  23. data/lib/write_xlsx/package/table.rb +25 -4
  24. data/lib/write_xlsx/utility.rb +317 -32
  25. data/lib/write_xlsx/version.rb +1 -1
  26. data/lib/write_xlsx/workbook.rb +103 -7
  27. data/lib/write_xlsx/worksheet.rb +280 -30
  28. data/lib/write_xlsx/worksheet/cell_data.rb +21 -0
  29. data/lib/write_xlsx/worksheet/hyperlink.rb +4 -8
  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 +8 -3
  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/_test_hyperlink31.rb +26 -0
  135. data/test/regression/disabled_test_vml04.rb +1 -1
  136. data/test/regression/images/zero_dpi.jpg +0 -0
  137. data/test/regression/test_array_formula01.rb +1 -1
  138. data/test/regression/test_array_formula02.rb +1 -1
  139. data/test/regression/test_autofilter00.rb +1 -1
  140. data/test/regression/test_autofilter01.rb +1 -1
  141. data/test/regression/test_autofilter02.rb +1 -1
  142. data/test/regression/test_autofilter03.rb +1 -1
  143. data/test/regression/test_autofilter04.rb +1 -1
  144. data/test/regression/test_autofilter05.rb +1 -1
  145. data/test/regression/test_autofilter06.rb +1 -1
  146. data/test/regression/test_autofilter07.rb +1 -1
  147. data/test/regression/test_button01.rb +1 -1
  148. data/test/regression/test_button02.rb +1 -1
  149. data/test/regression/test_button03.rb +1 -1
  150. data/test/regression/test_button04.rb +1 -1
  151. data/test/regression/test_button05.rb +1 -1
  152. data/test/regression/test_button06.rb +1 -1
  153. data/test/regression/test_button07.rb +1 -1
  154. data/test/regression/test_button08.rb +1 -1
  155. data/test/regression/test_button13.rb +1 -1
  156. data/test/regression/test_button14.rb +1 -1
  157. data/test/regression/test_chart_area01.rb +1 -1
  158. data/test/regression/test_chart_area02.rb +1 -1
  159. data/test/regression/test_chart_area03.rb +1 -1
  160. data/test/regression/test_chart_area04.rb +1 -1
  161. data/test/regression/test_chart_axis01.rb +1 -1
  162. data/test/regression/test_chart_axis02.rb +1 -1
  163. data/test/regression/test_chart_axis03.rb +1 -1
  164. data/test/regression/test_chart_axis04.rb +1 -1
  165. data/test/regression/test_chart_axis05.rb +1 -1
  166. data/test/regression/test_chart_axis06.rb +1 -1
  167. data/test/regression/test_chart_axis07.rb +1 -1
  168. data/test/regression/test_chart_axis08.rb +1 -1
  169. data/test/regression/test_chart_axis09.rb +1 -1
  170. data/test/regression/test_chart_axis10.rb +1 -1
  171. data/test/regression/test_chart_axis11.rb +1 -1
  172. data/test/regression/test_chart_axis12.rb +1 -1
  173. data/test/regression/test_chart_axis13.rb +1 -1
  174. data/test/regression/test_chart_axis14.rb +1 -1
  175. data/test/regression/test_chart_axis15.rb +1 -1
  176. data/test/regression/test_chart_axis16.rb +1 -1
  177. data/test/regression/test_chart_axis17.rb +1 -1
  178. data/test/regression/test_chart_axis18.rb +1 -1
  179. data/test/regression/test_chart_axis19.rb +1 -1
  180. data/test/regression/test_chart_axis20.rb +1 -1
  181. data/test/regression/test_chart_axis21.rb +1 -1
  182. data/test/regression/test_chart_axis22.rb +1 -1
  183. data/test/regression/test_chart_axis23.rb +1 -1
  184. data/test/regression/test_chart_axis24.rb +1 -1
  185. data/test/regression/test_chart_axis25.rb +1 -1
  186. data/test/regression/test_chart_axis26.rb +1 -1
  187. data/test/regression/test_chart_axis27.rb +1 -1
  188. data/test/regression/test_chart_axis28.rb +1 -1
  189. data/test/regression/test_chart_axis29.rb +1 -1
  190. data/test/regression/test_chart_axis30.rb +1 -1
  191. data/test/regression/test_chart_axis31.rb +1 -1
  192. data/test/regression/test_chart_axis32.rb +1 -1
  193. data/test/regression/test_chart_axis33.rb +1 -1
  194. data/test/regression/test_chart_axis34.rb +1 -1
  195. data/test/regression/test_chart_axis35.rb +1 -1
  196. data/test/regression/test_chart_axis36.rb +1 -1
  197. data/test/regression/test_chart_axis37.rb +1 -1
  198. data/test/regression/test_chart_axis38.rb +1 -1
  199. data/test/regression/test_chart_axis39.rb +1 -1
  200. data/test/regression/test_chart_axis40.rb +44 -0
  201. data/test/regression/test_chart_axis41.rb +48 -0
  202. data/test/regression/test_chart_bar01.rb +1 -1
  203. data/test/regression/test_chart_bar02.rb +1 -1
  204. data/test/regression/test_chart_bar03.rb +1 -1
  205. data/test/regression/test_chart_bar04.rb +1 -1
  206. data/test/regression/test_chart_bar05.rb +1 -1
  207. data/test/regression/test_chart_bar06.rb +1 -1
  208. data/test/regression/test_chart_bar07.rb +1 -1
  209. data/test/regression/test_chart_bar08.rb +4 -1
  210. data/test/regression/test_chart_bar09.rb +1 -1
  211. data/test/regression/test_chart_bar10.rb +1 -1
  212. data/test/regression/test_chart_bar11.rb +4 -1
  213. data/test/regression/test_chart_bar12.rb +1 -1
  214. data/test/regression/test_chart_bar13.rb +1 -1
  215. data/test/regression/test_chart_bar14.rb +4 -1
  216. data/test/regression/test_chart_bar15.rb +1 -1
  217. data/test/regression/test_chart_bar16.rb +1 -1
  218. data/test/regression/test_chart_bar17.rb +1 -1
  219. data/test/regression/test_chart_bar18.rb +1 -1
  220. data/test/regression/test_chart_bar19.rb +1 -1
  221. data/test/regression/test_chart_bar20.rb +1 -1
  222. data/test/regression/test_chart_bar21.rb +1 -1
  223. data/test/regression/test_chart_bar22.rb +1 -1
  224. data/test/regression/test_chart_bar23.rb +1 -1
  225. data/test/regression/test_chart_bar24.rb +1 -1
  226. data/test/regression/test_chart_blank01.rb +1 -1
  227. data/test/regression/test_chart_blank02.rb +1 -1
  228. data/test/regression/test_chart_blank03.rb +1 -1
  229. data/test/regression/test_chart_blank04.rb +1 -1
  230. data/test/regression/test_chart_blank05.rb +1 -1
  231. data/test/regression/test_chart_blank06.rb +1 -1
  232. data/test/regression/test_chart_chartarea01.rb +1 -1
  233. data/test/regression/test_chart_chartarea02.rb +1 -1
  234. data/test/regression/test_chart_chartarea03.rb +1 -1
  235. data/test/regression/test_chart_chartarea04.rb +1 -1
  236. data/test/regression/test_chart_chartarea05.rb +17 -18
  237. data/test/regression/test_chart_chartarea06.rb +49 -0
  238. data/test/regression/test_chart_clustered01.rb +1 -1
  239. data/test/regression/test_chart_column01.rb +1 -1
  240. data/test/regression/test_chart_column02.rb +1 -1
  241. data/test/regression/test_chart_column03.rb +1 -1
  242. data/test/regression/test_chart_column04.rb +1 -1
  243. data/test/regression/test_chart_column05.rb +1 -1
  244. data/test/regression/test_chart_column06.rb +1 -1
  245. data/test/regression/test_chart_column07.rb +1 -1
  246. data/test/regression/test_chart_column08.rb +1 -1
  247. data/test/regression/test_chart_column09.rb +1 -1
  248. data/test/regression/test_chart_column10.rb +1 -1
  249. data/test/regression/test_chart_column11.rb +1 -1
  250. data/test/regression/test_chart_column12.rb +1 -1
  251. data/test/regression/test_chart_combined01.rb +1 -1
  252. data/test/regression/test_chart_combined02.rb +1 -1
  253. data/test/regression/test_chart_combined03.rb +1 -1
  254. data/test/regression/test_chart_combined04.rb +1 -1
  255. data/test/regression/test_chart_combined05.rb +1 -1
  256. data/test/regression/test_chart_combined06.rb +1 -1
  257. data/test/regression/test_chart_combined07.rb +1 -1
  258. data/test/regression/test_chart_combined08.rb +1 -1
  259. data/test/regression/test_chart_combined09.rb +50 -0
  260. data/test/regression/test_chart_crossing01.rb +1 -1
  261. data/test/regression/test_chart_crossing02.rb +1 -1
  262. data/test/regression/test_chart_crossing03.rb +1 -1
  263. data/test/regression/test_chart_crossing04.rb +1 -1
  264. data/test/regression/test_chart_data_labels01.rb +1 -1
  265. data/test/regression/test_chart_data_labels02.rb +1 -1
  266. data/test/regression/test_chart_data_labels03.rb +1 -1
  267. data/test/regression/test_chart_data_labels04.rb +1 -1
  268. data/test/regression/test_chart_data_labels05.rb +1 -1
  269. data/test/regression/test_chart_data_labels06.rb +1 -1
  270. data/test/regression/test_chart_data_labels07.rb +1 -1
  271. data/test/regression/test_chart_data_labels08.rb +1 -1
  272. data/test/regression/test_chart_data_labels09.rb +1 -1
  273. data/test/regression/test_chart_data_labels10.rb +1 -1
  274. data/test/regression/test_chart_data_labels11.rb +1 -1
  275. data/test/regression/test_chart_data_labels12.rb +1 -1
  276. data/test/regression/test_chart_data_labels13.rb +1 -1
  277. data/test/regression/test_chart_data_labels14.rb +1 -1
  278. data/test/regression/test_chart_data_labels15.rb +1 -1
  279. data/test/regression/test_chart_data_labels16.rb +1 -1
  280. data/test/regression/test_chart_data_labels17.rb +1 -1
  281. data/test/regression/test_chart_data_labels18.rb +1 -1
  282. data/test/regression/test_chart_data_labels19.rb +1 -1
  283. data/test/regression/test_chart_data_labels20.rb +1 -1
  284. data/test/regression/test_chart_data_labels21.rb +1 -1
  285. data/test/regression/test_chart_data_labels22.rb +1 -1
  286. data/test/regression/test_chart_data_labels23.rb +1 -1
  287. data/test/regression/test_chart_data_labels24.rb +1 -1
  288. data/test/regression/test_chart_data_labels25.rb +61 -0
  289. data/test/regression/test_chart_date01.rb +1 -1
  290. data/test/regression/test_chart_date02.rb +1 -1
  291. data/test/regression/test_chart_date03.rb +1 -1
  292. data/test/regression/test_chart_date04.rb +1 -1
  293. data/test/regression/test_chart_date05.rb +1 -1
  294. data/test/regression/test_chart_display_units01.rb +1 -1
  295. data/test/regression/test_chart_display_units02.rb +1 -1
  296. data/test/regression/test_chart_display_units03.rb +1 -1
  297. data/test/regression/test_chart_display_units04.rb +1 -1
  298. data/test/regression/test_chart_display_units05.rb +1 -1
  299. data/test/regression/test_chart_display_units06.rb +1 -1
  300. data/test/regression/test_chart_display_units07.rb +1 -1
  301. data/test/regression/test_chart_display_units08.rb +1 -1
  302. data/test/regression/test_chart_display_units09.rb +1 -1
  303. data/test/regression/test_chart_display_units10.rb +1 -1
  304. data/test/regression/test_chart_display_units11.rb +1 -1
  305. data/test/regression/test_chart_display_units12.rb +1 -1
  306. data/test/regression/test_chart_doughnut01.rb +1 -1
  307. data/test/regression/test_chart_doughnut02.rb +1 -1
  308. data/test/regression/test_chart_doughnut03.rb +1 -1
  309. data/test/regression/test_chart_doughnut04.rb +1 -1
  310. data/test/regression/test_chart_doughnut05.rb +1 -1
  311. data/test/regression/test_chart_doughnut06.rb +1 -1
  312. data/test/regression/test_chart_drop_lines01.rb +1 -1
  313. data/test/regression/test_chart_drop_lines02.rb +1 -1
  314. data/test/regression/test_chart_drop_lines03.rb +1 -1
  315. data/test/regression/test_chart_drop_lines04.rb +1 -1
  316. data/test/regression/test_chart_errorbars01.rb +1 -1
  317. data/test/regression/test_chart_errorbars02.rb +1 -1
  318. data/test/regression/test_chart_errorbars03.rb +1 -1
  319. data/test/regression/test_chart_errorbars04.rb +1 -1
  320. data/test/regression/test_chart_errorbars05.rb +1 -1
  321. data/test/regression/test_chart_errorbars06.rb +1 -1
  322. data/test/regression/test_chart_errorbars07.rb +1 -1
  323. data/test/regression/test_chart_errorbars08.rb +1 -1
  324. data/test/regression/test_chart_errorbars09.rb +1 -1
  325. data/test/regression/test_chart_errorbars10.rb +1 -1
  326. data/test/regression/test_chart_font01.rb +1 -1
  327. data/test/regression/test_chart_font02.rb +1 -1
  328. data/test/regression/test_chart_font03.rb +1 -1
  329. data/test/regression/test_chart_font04.rb +1 -1
  330. data/test/regression/test_chart_font05.rb +1 -1
  331. data/test/regression/test_chart_font06.rb +1 -1
  332. data/test/regression/test_chart_font07.rb +1 -1
  333. data/test/regression/test_chart_font08.rb +1 -1
  334. data/test/regression/test_chart_font09.rb +1 -1
  335. data/test/regression/test_chart_format01.rb +1 -1
  336. data/test/regression/test_chart_format02.rb +1 -1
  337. data/test/regression/test_chart_format03.rb +1 -1
  338. data/test/regression/test_chart_format04.rb +1 -1
  339. data/test/regression/test_chart_format05.rb +1 -1
  340. data/test/regression/test_chart_format06.rb +1 -1
  341. data/test/regression/test_chart_format07.rb +1 -1
  342. data/test/regression/test_chart_format08.rb +1 -1
  343. data/test/regression/test_chart_format09.rb +1 -1
  344. data/test/regression/test_chart_format10.rb +1 -1
  345. data/test/regression/test_chart_format11.rb +1 -1
  346. data/test/regression/test_chart_format12.rb +1 -1
  347. data/test/regression/test_chart_format13.rb +1 -1
  348. data/test/regression/test_chart_format14.rb +1 -1
  349. data/test/regression/test_chart_format15.rb +1 -1
  350. data/test/regression/test_chart_format16.rb +1 -1
  351. data/test/regression/test_chart_format17.rb +1 -1
  352. data/test/regression/test_chart_format18.rb +1 -1
  353. data/test/regression/test_chart_format19.rb +1 -1
  354. data/test/regression/test_chart_format20.rb +1 -1
  355. data/test/regression/test_chart_format21.rb +47 -0
  356. data/test/regression/test_chart_format22.rb +47 -0
  357. data/test/regression/test_chart_format23.rb +47 -0
  358. data/test/regression/test_chart_format24.rb +52 -0
  359. data/test/regression/test_chart_format25.rb +46 -0
  360. data/test/regression/test_chart_format26.rb +48 -0
  361. data/test/regression/test_chart_format27.rb +58 -0
  362. data/test/regression/test_chart_format28.rb +52 -0
  363. data/test/regression/test_chart_format29.rb +59 -0
  364. data/test/regression/test_chart_format30.rb +53 -0
  365. data/test/regression/test_chart_format31.rb +60 -0
  366. data/test/regression/test_chart_gap01.rb +1 -1
  367. data/test/regression/test_chart_gap02.rb +1 -1
  368. data/test/regression/test_chart_gap03.rb +1 -1
  369. data/test/regression/test_chart_gap04.rb +1 -1
  370. data/test/regression/test_chart_gap05.rb +1 -1
  371. data/test/regression/test_chart_gradient01.rb +1 -1
  372. data/test/regression/test_chart_gradient02.rb +1 -1
  373. data/test/regression/test_chart_gradient03.rb +1 -1
  374. data/test/regression/test_chart_gradient04.rb +1 -1
  375. data/test/regression/test_chart_gradient05.rb +1 -1
  376. data/test/regression/test_chart_gradient06.rb +1 -1
  377. data/test/regression/test_chart_gradient07.rb +1 -1
  378. data/test/regression/test_chart_gradient08.rb +1 -1
  379. data/test/regression/test_chart_gradient09.rb +1 -1
  380. data/test/regression/test_chart_gradient10.rb +1 -1
  381. data/test/regression/test_chart_gradient11.rb +1 -1
  382. data/test/regression/test_chart_gradient12.rb +1 -1
  383. data/test/regression/test_chart_gradient13.rb +1 -1
  384. data/test/regression/test_chart_gridlines01.rb +1 -1
  385. data/test/regression/test_chart_gridlines02.rb +1 -1
  386. data/test/regression/test_chart_gridlines03.rb +1 -1
  387. data/test/regression/test_chart_gridlines04.rb +5 -4
  388. data/test/regression/test_chart_gridlines05.rb +1 -1
  389. data/test/regression/test_chart_gridlines06.rb +1 -1
  390. data/test/regression/test_chart_gridlines07.rb +1 -1
  391. data/test/regression/test_chart_gridlines08.rb +9 -12
  392. data/test/regression/test_chart_gridlines09.rb +1 -1
  393. data/test/regression/test_chart_layout01.rb +1 -1
  394. data/test/regression/test_chart_layout02.rb +1 -1
  395. data/test/regression/test_chart_layout03.rb +1 -1
  396. data/test/regression/test_chart_layout04.rb +1 -1
  397. data/test/regression/test_chart_layout05.rb +1 -1
  398. data/test/regression/test_chart_layout06.rb +1 -1
  399. data/test/regression/test_chart_layout07.rb +1 -1
  400. data/test/regression/test_chart_layout08.rb +1 -1
  401. data/test/regression/test_chart_legend01.rb +1 -1
  402. data/test/regression/test_chart_legend02.rb +1 -1
  403. data/test/regression/test_chart_line01.rb +1 -1
  404. data/test/regression/test_chart_line02.rb +1 -1
  405. data/test/regression/test_chart_line03.rb +1 -1
  406. data/test/regression/test_chart_line04.rb +1 -1
  407. data/test/regression/test_chart_name01.rb +1 -1
  408. data/test/regression/test_chart_name02.rb +1 -1
  409. data/test/regression/test_chart_name03.rb +1 -1
  410. data/test/regression/test_chart_order01.rb +1 -1
  411. data/test/regression/test_chart_order02.rb +1 -1
  412. data/test/regression/test_chart_order03.rb +1 -1
  413. data/test/regression/test_chart_pattern01.rb +49 -0
  414. data/test/regression/test_chart_pattern02.rb +106 -0
  415. data/test/regression/test_chart_pattern03.rb +105 -0
  416. data/test/regression/test_chart_pattern04.rb +105 -0
  417. data/test/regression/test_chart_pattern05.rb +105 -0
  418. data/test/regression/test_chart_pattern06.rb +105 -0
  419. data/test/regression/test_chart_pattern07.rb +105 -0
  420. data/test/regression/test_chart_pattern08.rb +105 -0
  421. data/test/regression/test_chart_pattern09.rb +57 -0
  422. data/test/regression/test_chart_pattern10.rb +57 -0
  423. data/test/regression/test_chart_pie01.rb +1 -1
  424. data/test/regression/test_chart_pie02.rb +1 -1
  425. data/test/regression/test_chart_pie03.rb +1 -1
  426. data/test/regression/test_chart_pie04.rb +1 -1
  427. data/test/regression/test_chart_pie05.rb +1 -1
  428. data/test/regression/test_chart_points01.rb +1 -1
  429. data/test/regression/test_chart_points02.rb +1 -1
  430. data/test/regression/test_chart_points03.rb +1 -1
  431. data/test/regression/test_chart_points04.rb +1 -1
  432. data/test/regression/test_chart_points05.rb +1 -1
  433. data/test/regression/test_chart_points06.rb +1 -1
  434. data/test/regression/test_chart_radar01.rb +1 -1
  435. data/test/regression/test_chart_radar02.rb +1 -1
  436. data/test/regression/test_chart_radar03.rb +1 -1
  437. data/test/regression/test_chart_scatter01.rb +1 -1
  438. data/test/regression/test_chart_scatter02.rb +1 -1
  439. data/test/regression/test_chart_scatter03.rb +1 -1
  440. data/test/regression/test_chart_scatter04.rb +1 -1
  441. data/test/regression/test_chart_scatter05.rb +1 -1
  442. data/test/regression/test_chart_scatter06.rb +1 -1
  443. data/test/regression/test_chart_scatter07.rb +1 -1
  444. data/test/regression/test_chart_scatter08.rb +1 -1
  445. data/test/regression/test_chart_scatter09.rb +1 -1
  446. data/test/regression/test_chart_scatter10.rb +1 -1
  447. data/test/regression/test_chart_scatter11.rb +1 -1
  448. data/test/regression/test_chart_scatter12.rb +1 -1
  449. data/test/regression/test_chart_scatter13.rb +1 -1
  450. data/test/regression/test_chart_scatter14.rb +1 -1
  451. data/test/regression/test_chart_scatter15.rb +1 -1
  452. data/test/regression/test_chart_size01.rb +1 -1
  453. data/test/regression/test_chart_size02.rb +1 -1
  454. data/test/regression/test_chart_size03.rb +1 -1
  455. data/test/regression/test_chart_size04.rb +1 -1
  456. data/test/regression/test_chart_size05.rb +1 -1
  457. data/test/regression/test_chart_sparse01.rb +1 -1
  458. data/test/regression/test_chart_stock01.rb +1 -1
  459. data/test/regression/test_chart_stock02.rb +1 -1
  460. data/test/regression/test_chart_str01.rb +1 -1
  461. data/test/regression/test_chart_str02.rb +1 -1
  462. data/test/regression/test_chart_table01.rb +1 -1
  463. data/test/regression/test_chart_table02.rb +1 -1
  464. data/test/regression/test_chart_table03.rb +56 -0
  465. data/test/regression/test_chart_title01.rb +1 -1
  466. data/test/regression/test_chart_title02.rb +1 -1
  467. data/test/regression/test_chartsheet01.rb +1 -1
  468. data/test/regression/test_chartsheet02.rb +1 -1
  469. data/test/regression/test_chartsheet03.rb +1 -1
  470. data/test/regression/test_chartsheet04.rb +1 -1
  471. data/test/regression/test_chartsheet05.rb +1 -1
  472. data/test/regression/test_chartsheet06.rb +1 -1
  473. data/test/regression/test_chartsheet07.rb +1 -1
  474. data/test/regression/test_chartsheet08.rb +1 -1
  475. data/test/regression/test_chartsheet09.rb +1 -1
  476. data/test/regression/test_comment01.rb +1 -1
  477. data/test/regression/test_comment02.rb +1 -1
  478. data/test/regression/test_comment03.rb +1 -1
  479. data/test/regression/test_comment04.rb +1 -1
  480. data/test/regression/test_comment06.rb +1 -1
  481. data/test/regression/test_comment07.rb +1 -1
  482. data/test/regression/test_comment08.rb +1 -1
  483. data/test/regression/test_comment09.rb +1 -1
  484. data/test/regression/test_comment10.rb +1 -1
  485. data/test/regression/test_comment11.rb +1 -1
  486. data/test/regression/test_comment12.rb +1 -1
  487. data/test/regression/test_cond_format01.rb +1 -1
  488. data/test/regression/test_cond_format02.rb +1 -1
  489. data/test/regression/test_cond_format03.rb +1 -1
  490. data/test/regression/test_cond_format04.rb +1 -1
  491. data/test/regression/test_cond_format05.rb +1 -1
  492. data/test/regression/test_cond_format06.rb +1 -1
  493. data/test/regression/test_cond_format07.rb +1 -1
  494. data/test/regression/test_cond_format08.rb +1 -1
  495. data/test/regression/test_cond_format10.rb +1 -1
  496. data/test/regression/test_cond_format11.rb +1 -1
  497. data/test/regression/test_cond_format12.rb +1 -1
  498. data/test/regression/test_cond_format13.rb +1 -1
  499. data/test/regression/test_cond_format14.rb +42 -0
  500. data/test/regression/test_cond_format15.rb +53 -0
  501. data/test/regression/test_cond_format16.rb +53 -0
  502. data/test/regression/test_cond_format17.rb +37 -0
  503. data/test/regression/test_cond_format18.rb +136 -0
  504. data/test/regression/test_custom_colors01.rb +1 -1
  505. data/test/regression/test_data_validation01.rb +1 -1
  506. data/test/regression/test_data_validation02.rb +1 -1
  507. data/test/regression/test_data_validation03.rb +1 -1
  508. data/test/regression/test_data_validation04.rb +2 -2
  509. data/test/regression/test_data_validation05.rb +2 -2
  510. data/test/regression/test_data_validation08.rb +2 -2
  511. data/test/regression/test_date_1904_01.rb +2 -2
  512. data/test/regression/test_date_1904_02.rb +1 -1
  513. data/test/regression/test_date_examples01.rb +1 -1
  514. data/test/regression/test_default_format01.rb +1 -1
  515. data/test/regression/test_default_row01.rb +1 -1
  516. data/test/regression/test_default_row02.rb +1 -1
  517. data/test/regression/test_default_row03.rb +1 -1
  518. data/test/regression/test_default_row04.rb +1 -1
  519. data/test/regression/test_default_row05.rb +32 -0
  520. data/test/regression/test_defined_name01.rb +1 -1
  521. data/test/regression/test_defined_name02.rb +1 -1
  522. data/test/regression/test_defined_name03.rb +1 -1
  523. data/test/regression/test_defined_name04.rb +15 -15
  524. data/test/regression/test_escapes01.rb +1 -1
  525. data/test/regression/test_escapes02.rb +1 -1
  526. data/test/regression/test_escapes03.rb +1 -1
  527. data/test/regression/test_escapes04.rb +4 -1
  528. data/test/regression/test_escapes05.rb +4 -1
  529. data/test/regression/test_escapes06.rb +1 -1
  530. data/test/regression/test_escapes07.rb +4 -1
  531. data/test/regression/test_escapes08.rb +4 -1
  532. data/test/regression/test_excel2003_style01.rb +1 -1
  533. data/test/regression/test_excel2003_style02.rb +1 -1
  534. data/test/regression/test_excel2003_style03.rb +1 -1
  535. data/test/regression/test_excel2003_style04.rb +1 -1
  536. data/test/regression/test_excel2003_style05.rb +1 -1
  537. data/test/regression/test_excel2003_style06.rb +1 -1
  538. data/test/regression/test_excel2003_style07.rb +1 -1
  539. data/test/regression/test_excel2003_style08.rb +1 -1
  540. data/test/regression/test_firstsheet01.rb +1 -1
  541. data/test/regression/test_fit_to_pages01.rb +1 -1
  542. data/test/regression/test_fit_to_pages02.rb +1 -1
  543. data/test/regression/test_fit_to_pages03.rb +1 -1
  544. data/test/regression/test_fit_to_pages04.rb +1 -1
  545. data/test/regression/test_fit_to_pages05.rb +1 -1
  546. data/test/regression/test_format01.rb +1 -1
  547. data/test/regression/test_format02.rb +1 -1
  548. data/test/regression/test_format03.rb +1 -1
  549. data/test/regression/test_format04.rb +1 -1
  550. data/test/regression/test_format05.rb +1 -1
  551. data/test/regression/test_format11.rb +1 -1
  552. data/test/regression/test_format12.rb +1 -1
  553. data/test/regression/test_format13.rb +31 -0
  554. data/test/regression/test_format14.rb +26 -0
  555. data/test/regression/test_formula_results01.rb +1 -1
  556. data/test/regression/test_gridlines01.rb +1 -1
  557. data/test/regression/test_header01.rb +1 -1
  558. data/test/regression/test_header02.rb +1 -1
  559. data/test/regression/test_header03.rb +1 -1
  560. data/test/regression/test_header_image01.rb +1 -1
  561. data/test/regression/test_header_image02.rb +1 -1
  562. data/test/regression/test_header_image03.rb +1 -1
  563. data/test/regression/test_header_image04.rb +1 -1
  564. data/test/regression/test_header_image05.rb +1 -1
  565. data/test/regression/test_header_image06.rb +1 -1
  566. data/test/regression/test_header_image07.rb +1 -1
  567. data/test/regression/test_header_image08.rb +1 -1
  568. data/test/regression/test_header_image09.rb +1 -1
  569. data/test/regression/test_header_image10.rb +1 -1
  570. data/test/regression/test_header_image11.rb +1 -1
  571. data/test/regression/test_header_image12.rb +1 -1
  572. data/test/regression/test_header_image13.rb +1 -1
  573. data/test/regression/test_header_image14.rb +1 -1
  574. data/test/regression/test_hide01.rb +1 -1
  575. data/test/regression/test_hyperlink01.rb +4 -1
  576. data/test/regression/test_hyperlink02.rb +4 -1
  577. data/test/regression/test_hyperlink03.rb +5 -1
  578. data/test/regression/test_hyperlink04.rb +4 -1
  579. data/test/regression/test_hyperlink05.rb +4 -1
  580. data/test/regression/test_hyperlink06.rb +4 -1
  581. data/test/regression/test_hyperlink07.rb +4 -1
  582. data/test/regression/test_hyperlink08.rb +4 -1
  583. data/test/regression/test_hyperlink09.rb +4 -1
  584. data/test/regression/test_hyperlink10.rb +4 -1
  585. data/test/regression/test_hyperlink11.rb +4 -1
  586. data/test/regression/test_hyperlink12.rb +4 -1
  587. data/test/regression/test_hyperlink13.rb +4 -1
  588. data/test/regression/test_hyperlink14.rb +4 -1
  589. data/test/regression/test_hyperlink15.rb +4 -1
  590. data/test/regression/test_hyperlink16.rb +4 -1
  591. data/test/regression/test_hyperlink17.rb +4 -1
  592. data/test/regression/test_hyperlink18.rb +4 -1
  593. data/test/regression/test_hyperlink20.rb +4 -1
  594. data/test/regression/test_hyperlink21.rb +4 -1
  595. data/test/regression/test_hyperlink22.rb +4 -1
  596. data/test/regression/test_hyperlink23.rb +4 -1
  597. data/test/regression/test_hyperlink24.rb +4 -1
  598. data/test/regression/test_hyperlink25.rb +30 -0
  599. data/test/regression/test_hyperlink26.rb +30 -0
  600. data/test/regression/test_hyperlink27.rb +27 -0
  601. data/test/regression/test_hyperlink28.rb +50 -0
  602. data/test/regression/test_hyperlink29.rb +27 -0
  603. data/test/regression/test_hyperlink30.rb +36 -0
  604. data/test/regression/test_image01.rb +1 -1
  605. data/test/regression/test_image02.rb +1 -1
  606. data/test/regression/test_image03.rb +1 -1
  607. data/test/regression/test_image04.rb +1 -1
  608. data/test/regression/test_image05.rb +1 -1
  609. data/test/regression/test_image06.rb +1 -1
  610. data/test/regression/test_image07.rb +1 -1
  611. data/test/regression/test_image08.rb +1 -1
  612. data/test/regression/test_image09.rb +1 -1
  613. data/test/regression/test_image10.rb +1 -1
  614. data/test/regression/test_image11.rb +1 -1
  615. data/test/regression/test_image12.rb +1 -1
  616. data/test/regression/test_image13.rb +1 -1
  617. data/test/regression/test_image14.rb +1 -1
  618. data/test/regression/test_image15.rb +1 -1
  619. data/test/regression/test_image16.rb +1 -1
  620. data/test/regression/test_image17.rb +1 -1
  621. data/test/regression/test_image18.rb +1 -1
  622. data/test/regression/test_image19.rb +1 -1
  623. data/test/regression/test_image22.rb +1 -1
  624. data/test/regression/test_image23.rb +1 -1
  625. data/test/regression/test_image24.rb +1 -1
  626. data/test/regression/test_image25.rb +1 -1
  627. data/test/regression/test_image26.rb +1 -1
  628. data/test/regression/test_image27.rb +1 -1
  629. data/test/regression/test_image28.rb +2 -2
  630. data/test/regression/test_image29.rb +2 -2
  631. data/test/regression/test_image30.rb +1 -1
  632. data/test/regression/test_image31.rb +1 -1
  633. data/test/regression/test_image32.rb +1 -1
  634. data/test/regression/test_image33.rb +2 -2
  635. data/test/regression/test_image35.rb +26 -0
  636. data/test/regression/test_landscape01.rb +1 -1
  637. data/test/regression/test_macro01.rb +1 -1
  638. data/test/regression/test_merge_cells01.rb +1 -1
  639. data/test/regression/test_merge_range01.rb +1 -1
  640. data/test/regression/test_merge_range02.rb +1 -1
  641. data/test/regression/test_merge_range03.rb +1 -1
  642. data/test/regression/test_merge_range04.rb +1 -1
  643. data/test/regression/test_merge_range05.rb +1 -1
  644. data/test/regression/test_outline01.rb +1 -1
  645. data/test/regression/test_outline02.rb +1 -1
  646. data/test/regression/test_outline03.rb +1 -1
  647. data/test/regression/test_outline04.rb +1 -1
  648. data/test/regression/test_outline05.rb +1 -1
  649. data/test/regression/test_outline06.rb +1 -1
  650. data/test/regression/test_page_breaks01.rb +1 -1
  651. data/test/regression/test_page_breaks02.rb +1 -1
  652. data/test/regression/test_page_breaks03.rb +1 -1
  653. data/test/regression/test_page_breaks04.rb +1 -1
  654. data/test/regression/test_page_breaks05.rb +1 -1
  655. data/test/regression/test_page_breaks06.rb +1 -1
  656. data/test/regression/test_page_view01.rb +1 -1
  657. data/test/regression/test_panes01.rb +1 -1
  658. data/test/regression/test_print_across01.rb +1 -1
  659. data/test/regression/test_print_area01.rb +1 -1
  660. data/test/regression/test_print_area02.rb +1 -1
  661. data/test/regression/test_print_area03.rb +1 -1
  662. data/test/regression/test_print_area04.rb +1 -1
  663. data/test/regression/test_print_area05.rb +1 -1
  664. data/test/regression/test_print_area06.rb +1 -1
  665. data/test/regression/test_print_area07.rb +1 -1
  666. data/test/regression/test_print_options01.rb +1 -1
  667. data/test/regression/test_print_options02.rb +1 -1
  668. data/test/regression/test_print_options03.rb +1 -1
  669. data/test/regression/test_print_options04.rb +1 -1
  670. data/test/regression/test_print_options05.rb +1 -1
  671. data/test/regression/test_print_options06.rb +1 -1
  672. data/test/regression/test_print_options07.rb +1 -1
  673. data/test/regression/test_print_scale01.rb +1 -1
  674. data/test/regression/test_print_scale02.rb +1 -1
  675. data/test/regression/test_properties01.rb +2 -5
  676. data/test/regression/test_properties02.rb +2 -5
  677. data/test/regression/test_properties03.rb +26 -0
  678. data/test/regression/test_properties04.rb +61 -0
  679. data/test/regression/test_properties05.rb +30 -0
  680. data/test/regression/test_protect01.rb +1 -1
  681. data/test/regression/test_protect02.rb +1 -1
  682. data/test/regression/test_protect03.rb +1 -1
  683. data/test/regression/test_quote_name01.rb +1 -1
  684. data/test/regression/test_quote_name03.rb +1 -1
  685. data/test/regression/test_quote_name04.rb +1 -1
  686. data/test/regression/test_repeat01.rb +1 -1
  687. data/test/regression/test_repeat02.rb +1 -1
  688. data/test/regression/test_repeat03.rb +1 -1
  689. data/test/regression/test_repeat04.rb +1 -1
  690. data/test/regression/test_repeat05.rb +1 -1
  691. data/test/regression/test_rich_string01.rb +1 -1
  692. data/test/regression/test_rich_string02.rb +1 -1
  693. data/test/regression/test_rich_string03.rb +1 -1
  694. data/test/regression/test_rich_string04.rb +1 -1
  695. data/test/regression/test_rich_string05.rb +1 -1
  696. data/test/regression/test_rich_string06.rb +1 -1
  697. data/test/regression/test_rich_string07.rb +1 -1
  698. data/test/regression/test_rich_string08.rb +1 -1
  699. data/test/regression/test_rich_string09.rb +1 -1
  700. data/test/regression/test_rich_string10.rb +1 -1
  701. data/test/regression/test_rich_string11.rb +1 -1
  702. data/test/regression/test_rich_string12.rb +1 -1
  703. data/test/regression/test_row_col_format01.rb +1 -1
  704. data/test/regression/test_row_col_format02.rb +1 -1
  705. data/test/regression/test_row_col_format03.rb +1 -1
  706. data/test/regression/test_row_col_format04.rb +1 -1
  707. data/test/regression/test_row_col_format05.rb +1 -1
  708. data/test/regression/test_row_col_format06.rb +1 -1
  709. data/test/regression/test_row_col_format07.rb +1 -1
  710. data/test/regression/test_row_col_format08.rb +1 -1
  711. data/test/regression/test_row_col_format09.rb +1 -1
  712. data/test/regression/test_row_col_format10.rb +1 -1
  713. data/test/regression/test_row_col_format11.rb +1 -1
  714. data/test/regression/test_row_col_format12.rb +1 -1
  715. data/test/regression/test_row_col_format13.rb +1 -1
  716. data/test/regression/test_row_col_format14.rb +1 -1
  717. data/test/regression/test_selection01.rb +1 -1
  718. data/test/regression/test_selection02.rb +1 -1
  719. data/test/regression/test_set_column01.rb +1 -1
  720. data/test/regression/test_set_column02.rb +1 -1
  721. data/test/regression/test_set_column03.rb +1 -1
  722. data/test/regression/test_set_column04.rb +1 -1
  723. data/test/regression/test_set_column05.rb +1 -1
  724. data/test/regression/test_set_column06.rb +1 -1
  725. data/test/regression/test_set_column07.rb +1 -1
  726. data/test/regression/test_set_column08.rb +1 -1
  727. data/test/regression/test_set_column09.rb +1 -1
  728. data/test/regression/test_set_print_scale01.rb +1 -1
  729. data/test/regression/test_set_start_page01.rb +1 -1
  730. data/test/regression/test_set_start_page02.rb +1 -1
  731. data/test/regression/test_set_start_page03.rb +1 -1
  732. data/test/regression/test_shape01.rb +1 -1
  733. data/test/regression/test_shape02.rb +1 -1
  734. data/test/regression/test_shape03.rb +1 -1
  735. data/test/regression/test_shape04.rb +1 -1
  736. data/test/regression/test_shape_connect01.rb +1 -1
  737. data/test/regression/test_shape_connect02.rb +1 -1
  738. data/test/regression/test_shape_connect03.rb +1 -1
  739. data/test/regression/test_shape_connect04.rb +1 -1
  740. data/test/regression/test_shape_scale01.rb +1 -1
  741. data/test/regression/test_shape_stencil01.rb +1 -1
  742. data/test/regression/test_shared_strings01.rb +1 -1
  743. data/test/regression/test_shared_strings02.rb +1 -1
  744. data/test/regression/test_simple01.rb +1 -1
  745. data/test/regression/test_simple02.rb +1 -1
  746. data/test/regression/test_simple03.rb +1 -1
  747. data/test/regression/test_simple04.rb +1 -1
  748. data/test/regression/test_simple05.rb +1 -1
  749. data/test/regression/test_tab_color01.rb +1 -1
  750. data/test/regression/test_table01.rb +1 -1
  751. data/test/regression/test_table02.rb +1 -1
  752. data/test/regression/test_table03.rb +4 -1
  753. data/test/regression/test_table04.rb +4 -1
  754. data/test/regression/test_table05.rb +4 -1
  755. data/test/regression/test_table06.rb +4 -1
  756. data/test/regression/test_table07.rb +1 -1
  757. data/test/regression/test_table08.rb +1 -1
  758. data/test/regression/test_table09.rb +1 -1
  759. data/test/regression/test_table10.rb +1 -1
  760. data/test/regression/test_table11.rb +1 -1
  761. data/test/regression/test_table12.rb +1 -1
  762. data/test/regression/test_table13.rb +1 -1
  763. data/test/regression/test_table14.rb +1 -1
  764. data/test/regression/test_table15.rb +1 -1
  765. data/test/regression/test_table16.rb +1 -1
  766. data/test/regression/test_table17.rb +1 -1
  767. data/test/regression/test_table20.rb +34 -0
  768. data/test/regression/test_table21.rb +36 -0
  769. data/test/regression/test_table22.rb +32 -0
  770. data/test/regression/test_tutorial01.rb +1 -1
  771. data/test/regression/test_tutorial02.rb +1 -1
  772. data/test/regression/test_tutorial03.rb +1 -1
  773. data/test/regression/test_types02.rb +25 -0
  774. data/test/regression/test_types08.rb +31 -0
  775. data/test/regression/test_update_range_format_with_params.rb +1 -1
  776. data/test/regression/test_urls_as_strings.rb +1 -1
  777. data/test/regression/test_utf8_01.rb +1 -1
  778. data/test/regression/test_utf8_03.rb +1 -1
  779. data/test/regression/test_utf8_04.rb +1 -1
  780. data/test/regression/test_utf8_05.rb +1 -1
  781. data/test/regression/test_utf8_06.rb +1 -1
  782. data/test/regression/test_utf8_07.rb +1 -1
  783. data/test/regression/test_utf8_08.rb +1 -1
  784. data/test/regression/test_utf8_09.rb +1 -1
  785. data/test/regression/test_utf8_10.rb +1 -1
  786. data/test/regression/test_utf8_11.rb +23 -0
  787. data/test/regression/test_vml01.rb +1 -1
  788. data/test/regression/test_vml02.rb +1 -1
  789. data/test/regression/test_vml03.rb +1 -1
  790. data/test/regression/xlsx_files/chart_axis40.xlsx +0 -0
  791. data/test/regression/xlsx_files/chart_axis41.xlsx +0 -0
  792. data/test/regression/xlsx_files/chart_chartarea05.xlsx +0 -0
  793. data/test/regression/xlsx_files/chart_chartarea06.xlsx +0 -0
  794. data/test/regression/xlsx_files/chart_combined09.xlsx +0 -0
  795. data/test/regression/xlsx_files/chart_data_labels25.xlsx +0 -0
  796. data/test/regression/xlsx_files/chart_format21.xlsx +0 -0
  797. data/test/regression/xlsx_files/chart_format22.xlsx +0 -0
  798. data/test/regression/xlsx_files/chart_format23.xlsx +0 -0
  799. data/test/regression/xlsx_files/chart_format24.xlsx +0 -0
  800. data/test/regression/xlsx_files/chart_format25.xlsx +0 -0
  801. data/test/regression/xlsx_files/chart_format26.xlsx +0 -0
  802. data/test/regression/xlsx_files/chart_format27.xlsx +0 -0
  803. data/test/regression/xlsx_files/chart_format28.xlsx +0 -0
  804. data/test/regression/xlsx_files/chart_format29.xlsx +0 -0
  805. data/test/regression/xlsx_files/chart_format30.xlsx +0 -0
  806. data/test/regression/xlsx_files/chart_format31.xlsx +0 -0
  807. data/test/regression/xlsx_files/chart_pattern01.xlsx +0 -0
  808. data/test/regression/xlsx_files/chart_pattern02.xlsx +0 -0
  809. data/test/regression/xlsx_files/chart_pattern03.xlsx +0 -0
  810. data/test/regression/xlsx_files/chart_pattern04.xlsx +0 -0
  811. data/test/regression/xlsx_files/chart_pattern05.xlsx +0 -0
  812. data/test/regression/xlsx_files/chart_pattern06.xlsx +0 -0
  813. data/test/regression/xlsx_files/chart_pattern07.xlsx +0 -0
  814. data/test/regression/xlsx_files/chart_pattern08.xlsx +0 -0
  815. data/test/regression/xlsx_files/chart_pattern09.xlsx +0 -0
  816. data/test/regression/xlsx_files/chart_pattern10.xlsx +0 -0
  817. data/test/regression/xlsx_files/chart_table03.xlsx +0 -0
  818. data/test/regression/xlsx_files/cond_format14.xlsx +0 -0
  819. data/test/regression/xlsx_files/cond_format15.xlsx +0 -0
  820. data/test/regression/xlsx_files/cond_format16.xlsx +0 -0
  821. data/test/regression/xlsx_files/cond_format17.xlsx +0 -0
  822. data/test/regression/xlsx_files/cond_format18.xlsx +0 -0
  823. data/test/regression/xlsx_files/date_1904_01.xlsx +0 -0
  824. data/test/regression/xlsx_files/default_row05.xlsx +0 -0
  825. data/test/regression/xlsx_files/format13.xlsx +0 -0
  826. data/test/regression/xlsx_files/format14.xlsx +0 -0
  827. data/test/regression/xlsx_files/hyperlink25.xlsx +0 -0
  828. data/test/regression/xlsx_files/hyperlink26.xlsx +0 -0
  829. data/test/regression/xlsx_files/hyperlink27.xlsx +0 -0
  830. data/test/regression/xlsx_files/hyperlink28.xlsx +0 -0
  831. data/test/regression/xlsx_files/hyperlink29.xlsx +0 -0
  832. data/test/regression/xlsx_files/hyperlink30.xlsx +0 -0
  833. data/test/regression/xlsx_files/hyperlink31.xlsx +0 -0
  834. data/test/regression/xlsx_files/image35.xlsx +0 -0
  835. data/test/regression/xlsx_files/properties03.xlsx +0 -0
  836. data/test/regression/xlsx_files/properties04.xlsx +0 -0
  837. data/test/regression/xlsx_files/properties05.xlsx +0 -0
  838. data/test/regression/xlsx_files/table21.xlsx +0 -0
  839. data/test/regression/xlsx_files/table22.xlsx +0 -0
  840. data/test/regression/xlsx_files/types02.xlsx +0 -0
  841. data/test/regression/xlsx_files/types08.xlsx +0 -0
  842. data/test/regression/xlsx_files/utf8_11.xlsx +0 -0
  843. data/test/test_delete_files.rb +3 -3
  844. data/test/test_example_match.rb +1 -1
  845. data/test/test_option_hash_for_workbook.rb +1 -1
  846. data/test/test_xml_writer_simple.rb +1 -1
  847. data/test/workbook/test_define_name.rb +1 -1
  848. data/test/workbook/test_get_chart_range.rb +3 -5
  849. data/test/workbook/test_sort_defined_names.rb +1 -1
  850. data/test/workbook/test_workbook_01.rb +1 -1
  851. data/test/workbook/test_workbook_02.rb +1 -1
  852. data/test/workbook/test_workbook_03.rb +1 -1
  853. data/test/workbook/test_worksheet_by_name.rb +35 -0
  854. data/test/workbook/test_write_calc_pr.rb +1 -1
  855. data/test/workbook/test_write_defined_name.rb +1 -1
  856. data/test/workbook/test_write_defined_names.rb +1 -1
  857. data/test/workbook/test_write_workbook_view.rb +81 -0
  858. data/test/worksheet/test_calculate_spans.rb +1 -1
  859. data/test/worksheet/test_cond_format_01.rb +1 -1
  860. data/test/worksheet/test_cond_format_02.rb +1 -1
  861. data/test/worksheet/test_cond_format_03.rb +1 -1
  862. data/test/worksheet/test_cond_format_04.rb +1 -1
  863. data/test/worksheet/test_cond_format_05.rb +1 -1
  864. data/test/worksheet/test_cond_format_06.rb +1 -1
  865. data/test/worksheet/test_cond_format_07.rb +1 -1
  866. data/test/worksheet/test_cond_format_08.rb +1 -1
  867. data/test/worksheet/test_cond_format_09.rb +1 -1
  868. data/test/worksheet/test_cond_format_10.rb +1 -1
  869. data/test/worksheet/test_cond_format_11.rb +1 -1
  870. data/test/worksheet/test_cond_format_12.rb +1 -1
  871. data/test/worksheet/test_cond_format_13.rb +1 -1
  872. data/test/worksheet/test_cond_format_14.rb +1 -1
  873. data/test/worksheet/test_cond_format_15.rb +1 -1
  874. data/test/worksheet/test_cond_format_16.rb +1 -1
  875. data/test/worksheet/test_cond_format_17.rb +1 -1
  876. data/test/worksheet/test_cond_format_18.rb +1 -1
  877. data/test/worksheet/test_cond_format_19.rb +1 -1
  878. data/test/worksheet/test_cond_format_20.rb +1 -1
  879. data/test/worksheet/test_cond_format_21.rb +2 -2
  880. data/test/worksheet/test_cond_format_22.rb +266 -0
  881. data/test/worksheet/test_cond_format_23.rb +242 -0
  882. data/test/worksheet/test_cond_format_24.rb +303 -0
  883. data/test/worksheet/test_convert_date_time_01.rb +1 -1
  884. data/test/worksheet/test_convert_date_time_02.rb +1 -1
  885. data/test/worksheet/test_convert_date_time_03.rb +1 -1
  886. data/test/worksheet/test_convert_date_time_04.rb +1 -1
  887. data/test/worksheet/test_data_bar_01.rb +53 -0
  888. data/test/worksheet/test_data_bar_02.rb +79 -0
  889. data/test/worksheet/test_data_bar_03.rb +147 -0
  890. data/test/worksheet/test_data_bar_04.rb +145 -0
  891. data/test/worksheet/test_data_bar_05.rb +147 -0
  892. data/test/worksheet/test_data_bar_06.rb +145 -0
  893. data/test/worksheet/test_data_bar_07.rb +146 -0
  894. data/test/worksheet/test_data_bar_08.rb +54 -0
  895. data/test/worksheet/test_data_bar_09.rb +80 -0
  896. data/test/worksheet/test_data_bar_10.rb +165 -0
  897. data/test/worksheet/test_data_bar_11.rb +167 -0
  898. data/test/worksheet/test_data_bar_12.rb +104 -0
  899. data/test/worksheet/test_extract_filter_tokens.rb +1 -1
  900. data/test/worksheet/test_parse_filter_expression.rb +1 -1
  901. data/test/worksheet/test_position_object.rb +1 -1
  902. data/test/worksheet/test_repeat_formula.rb +1 -1
  903. data/test/worksheet/test_sparkline_01.rb +1 -1
  904. data/test/worksheet/test_sparkline_02.rb +1 -1
  905. data/test/worksheet/test_sparkline_03.rb +1 -1
  906. data/test/worksheet/test_sparkline_04.rb +1 -1
  907. data/test/worksheet/test_sparkline_05.rb +1 -1
  908. data/test/worksheet/test_sparkline_06.rb +1 -1
  909. data/test/worksheet/test_sparkline_07.rb +1 -1
  910. data/test/worksheet/test_sparkline_08.rb +1 -1
  911. data/test/worksheet/test_sparkline_09.rb +1 -1
  912. data/test/worksheet/test_sparkline_10.rb +1 -1
  913. data/test/worksheet/test_sparkline_11.rb +1 -1
  914. data/test/worksheet/test_sparkline_12.rb +1 -1
  915. data/test/worksheet/test_update_format_methods.rb +9 -29
  916. data/test/worksheet/test_worksheet_01.rb +1 -1
  917. data/test/worksheet/test_worksheet_02.rb +1 -1
  918. data/test/worksheet/test_worksheet_03.rb +1 -1
  919. data/test/worksheet/test_worksheet_04.rb +1 -1
  920. data/test/worksheet/test_write_array_formula_01.rb +1 -8
  921. data/test/worksheet/test_write_autofilter.rb +1 -1
  922. data/test/worksheet/test_write_brk.rb +1 -1
  923. data/test/worksheet/test_write_cell.rb +1 -1
  924. data/test/worksheet/test_write_cell_value.rb +1 -1
  925. data/test/worksheet/test_write_col_breaks.rb +1 -1
  926. data/test/worksheet/test_write_col_info.rb +1 -1
  927. data/test/worksheet/test_write_conditional_formatting.rb +1 -1
  928. data/test/worksheet/test_write_custom_filter.rb +1 -1
  929. data/test/worksheet/test_write_custom_filters.rb +1 -1
  930. data/test/worksheet/test_write_data_validation_01.rb +1 -1
  931. data/test/worksheet/test_write_data_validation_02.rb +28 -1
  932. data/test/worksheet/test_write_dimension.rb +1 -1
  933. data/test/worksheet/test_write_filter.rb +1 -1
  934. data/test/worksheet/test_write_filter_column.rb +1 -1
  935. data/test/worksheet/test_write_filters.rb +1 -1
  936. data/test/worksheet/test_write_formula_does_not_change_formula_string.rb +1 -1
  937. data/test/worksheet/test_write_header_footer.rb +1 -1
  938. data/test/worksheet/test_write_hyperlink.rb +1 -8
  939. data/test/worksheet/test_write_legacy_drawing.rb +1 -1
  940. data/test/worksheet/test_write_merge_cell.rb +1 -1
  941. data/test/worksheet/test_write_merge_cells.rb +1 -1
  942. data/test/worksheet/test_write_methods.rb +68 -177
  943. data/test/worksheet/test_write_page_margins.rb +1 -1
  944. data/test/worksheet/test_write_page_set_up_pr.rb +1 -1
  945. data/test/worksheet/test_write_page_setup.rb +1 -1
  946. data/test/worksheet/test_write_pane.rb +1 -1
  947. data/test/worksheet/test_write_phonetic_pr.rb +1 -1
  948. data/test/worksheet/test_write_print_options.rb +1 -1
  949. data/test/worksheet/test_write_row_breaks.rb +1 -1
  950. data/test/worksheet/test_write_row_element.rb +1 -1
  951. data/test/worksheet/test_write_selection.rb +1 -1
  952. data/test/worksheet/test_write_sheet_calc_pr.rb +1 -1
  953. data/test/worksheet/test_write_sheet_data.rb +1 -1
  954. data/test/worksheet/test_write_sheet_format_pr.rb +1 -1
  955. data/test/worksheet/test_write_sheet_pr.rb +1 -1
  956. data/test/worksheet/test_write_sheet_protection.rb +1 -1
  957. data/test/worksheet/test_write_sheet_view.rb +1 -1
  958. data/test/worksheet/test_write_sheet_view1.rb +1 -1
  959. data/test/worksheet/test_write_sheet_view2.rb +1 -1
  960. data/test/worksheet/test_write_sheet_view3.rb +1 -1
  961. data/test/worksheet/test_write_sheet_view4.rb +1 -1
  962. data/test/worksheet/test_write_sheet_view5.rb +1 -1
  963. data/test/worksheet/test_write_sheet_view6.rb +1 -1
  964. data/test/worksheet/test_write_sheet_view7.rb +1 -1
  965. data/test/worksheet/test_write_sheet_view8.rb +1 -1
  966. data/test/worksheet/test_write_sheet_view9.rb +1 -1
  967. data/test/worksheet/test_write_tab_color.rb +1 -1
  968. data/test/worksheet/test_write_worksheet_attributes.rb +1 -1
  969. data/write_xlsx.gemspec +2 -2
  970. metadata +248 -15
  971. data/test/test_col_name.rb +0 -13
  972. data/test/workbook/test_workbook_new.rb +0 -18
  973. data/test/worksheet/test_format.rb +0 -17
  974. data/test/worksheet/test_write_multiline_string_with_url.rb +0 -30
  975. 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: d1ecd38fb615885768458a04b082d759437fbaf7fb2e07900cc558d18e400e51
4
+ data.tar.gz: d1fa5e1696685c9bba199b4ee922c488144f5a2f852644e24fcedd38fed29035
5
5
  SHA512:
6
- metadata.gz: b51f580ca37d7586f3faa6bafebeb76f2b14129070a0e7e70fe9d648e75e504983ad2ad97976ba49b3a8bb5af598826f54aa982dd73a7044132f32044bac6469
7
- data.tar.gz: 661206fe8a1eeb9878329559ee9bf5f2a8f12db9515fba264368fe2f9df8711bffe4bb2457a51fb993dcb7aa74ce1c1fcd9740b6b05c6666edebae9288e2e66c
6
+ metadata.gz: 1162adaf9f347ef7f9e986b0596877edc9a4e059b1055e5913c576583017af41b78710c44252c2ced77b06dcdd818af269f3c98282e9bc767f211237e8313fac
7
+ data.tar.gz: cd4eb41156f364e4685487ae32876d8b35d7907f7f7068442fb22d2afc6a24217794bea5e571720d6db14b80b7c7368ac08502071d5290cc696cd80588901cdd
@@ -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,79 @@
1
1
  Change history of write_xlsx rubygem.
2
2
 
3
+ 2021-01-02 v0.97.0
4
+
5
+ Added Excel 2010 data bar features such as solid fills and control over
6
+ the display of negative values.
7
+
8
+ Added default formatting for hyperlinks if none is specified. The format
9
+ is the Excel hyperlink style so links change colour after they are
10
+ clicked.
11
+
12
+ Fixed missing plotarea formatting in pie/doughnut charts.
13
+
14
+ 2020-12-31 v0.96.0
15
+
16
+ Added icon sets to conditional formatting.
17
+
18
+ 2020-12-30 v0.95.0
19
+
20
+ Added workbook set_size() method.
21
+
22
+ 2020-12-30 v0.94.0
23
+
24
+ Added font support to chart tables.
25
+
26
+ 2020-12-30 v0.93.0
27
+
28
+ Added trendline properties: intercept, display_equation and
29
+ display_r_squared.
30
+
31
+ 2020-12-30 v0.92.0
32
+
33
+ Fix for insert_image issue when handling images with zero dpi.
34
+
35
+ 2020-12-30 v0.91.0
36
+
37
+ Add set_custom_property() workbook method to set custom document
38
+ properties.
39
+
40
+ 2020-12-28 v0.90.0
41
+
42
+ Added worksheet_by_name() workbook method to retrieve a worksheet
43
+ in a workbook by name.
44
+
45
+ Fixed issue where internal file creation and modification dates where
46
+ in the local timezone instead of UTC.
47
+
48
+ Fixed issue with "external:" urls with space in sheetname.
49
+
50
+ Fixed issue where Unicode full-width number strings were treated as
51
+ numbers in write().
52
+
53
+ 2020-12-27 v0.89.0
54
+
55
+ Added write_boolean() worksheet method to write Excel boolean values.
56
+
57
+
58
+ 2020-12-26 v0.88.0
59
+
60
+ Added transparency option to solid fills in chart areas.
61
+
62
+ Added options to configure chart axis tick placement.
63
+
64
+ 2020-12-26 v0.87.0
65
+
66
+ Added chart pattern and gradient fills.
67
+
68
+ Added option to set chart tick interval.
69
+
70
+ Add checks for valid and non-duplicate worksheet table names.
71
+
72
+ Added support for table header formatting and a fix for wrapped lines in
73
+ the header.
74
+
75
+ use minitest instead of test-unit
76
+
3
77
  2020-11-01 v0.86.0
4
78
  Fix for images with negative offsets.
5
79
 
@@ -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.97](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
@@ -34,11 +34,6 @@
34
34
  worksheet.write(8, 0, '=IF(A5>3,"Yes", "No")')
35
35
 
36
36
  # Write a hyperlink
37
- hyperlink_format = workbook.add_format(
38
- :color => 'blue',
39
- :underline => 1
40
- )
41
-
42
- worksheet.write(10, 0, 'http://www.ruby-lang.org/', hyperlink_format)
37
+ worksheet.write(10, 0, 'http://www.ruby-lang.org/')
43
38
 
44
39
  workbook.close
@@ -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)
@@ -26,12 +26,6 @@
26
26
  :color => '#006100'
27
27
  )
28
28
 
29
- # Blue fill with dark blue text.
30
- format3 = workbook.add_format(
31
- :bg_color => '#C6CEFF',
32
- :color => '#0000FF'
33
- )
34
-
35
29
  # Some sample data to run the conditional formatting against.
36
30
  data = [
37
31
  [ 34, 72, 38, 30, 75, 48, 75, 66, 84, 86 ],
@@ -226,19 +220,18 @@
226
220
  #
227
221
  caption = 'Examples of color scales and data bars. Default colors.'
228
222
 
229
- # Use different sample data for examples 7 and 8
230
- data7 = 1 .. 12
223
+ data = 1 .. 12
231
224
 
232
225
  worksheet7.write('A1', caption)
233
226
 
234
227
  worksheet7.write('B2', "2 Color Scale")
235
- worksheet7.write_col('B3', data7)
228
+ worksheet7.write_col('B3', data)
236
229
 
237
230
  worksheet7.write('D2', "3 Color Scale")
238
- worksheet7.write_col('D3', data7)
231
+ worksheet7.write_col('D3', data)
239
232
 
240
233
  worksheet7.write('F2', "Data Bars")
241
- worksheet7.write_col('F3', data7)
234
+ worksheet7.write_col('F3', data)
242
235
 
243
236
 
244
237
  worksheet7.conditional_formatting('B3:B14',
@@ -266,16 +259,18 @@
266
259
  #
267
260
  caption = 'Examples of color scales and data bars. Modified colors.'
268
261
 
262
+ data = 1..12
263
+
269
264
  worksheet8.write('A1', caption)
270
265
 
271
266
  worksheet8.write('B2', "2 Color Scale")
272
- worksheet8.write_col('B3', data7)
267
+ worksheet8.write_col('B3', data)
273
268
 
274
269
  worksheet8.write('D2', "3 Color Scale")
275
- worksheet8.write_col('D3', data7)
270
+ worksheet8.write_col('D3', data)
276
271
 
277
272
  worksheet8.write('F2', "Data Bars")
278
- worksheet8.write_col('F3', data7)
273
+ worksheet8.write_col('F3', data)
279
274
 
280
275
 
281
276
  worksheet8.conditional_formatting('B3:B14',
@@ -304,47 +299,79 @@
304
299
 
305
300
  ###############################################################################
306
301
  #
307
- # Example 9
302
+ # Example 9.
308
303
  #
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.'
304
+ caption = 'Examples of conditional formats with icon sets.'
305
+
306
+ data = [
307
+ [1, 2, 3],
308
+ [1, 2, 3],
309
+ [1, 2, 3],
310
+ [1, 2, 3],
311
+ [1, 2, 3, 4],
312
+ [1, 2, 3, 4, 5],
313
+ [1, 2, 3, 4, 5]
314
+ ]
312
315
 
313
- # Write the data.
314
316
  worksheet9.write('A1', caption)
315
317
  worksheet9.write_col('B3', data)
316
318
 
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
- }
319
+ worksheet9.conditional_formatting(
320
+ 'B3:D3',
321
+ {
322
+ :type => 'icon_set',
323
+ :icon_style => '3_traffic_lights'
324
+ }
328
325
  )
329
326
 
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
- }
327
+ worksheet9.conditional_formatting(
328
+ 'B4:D4',
329
+ {
330
+ :type => 'icon_set',
331
+ :icon_style => '3_traffic_lights',
332
+ :reverse_icons => 1
333
+ }
338
334
  )
339
335
 
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
- }
336
+ worksheet9.conditional_formatting(
337
+ 'B5:D5',
338
+ {
339
+ :type => 'icon_set',
340
+ :icon_style => '3_traffic_lights',
341
+ :icons_only => 1
342
+ }
343
+ )
344
+
345
+ worksheet9.conditional_formatting(
346
+ 'B6:D6',
347
+ {
348
+ :type => 'icon_set',
349
+ :icon_style => '3_arrows'
350
+ }
351
+ )
352
+
353
+ worksheet9.conditional_formatting(
354
+ 'B7:E8',
355
+ {
356
+ :type => 'icon_set',
357
+ :icon_style => '4_arrows'
358
+ }
359
+ )
360
+
361
+ worksheet9.conditional_formatting(
362
+ 'B8:F8',
363
+ {
364
+ :type => 'icon_set',
365
+ :icon_style => '5_arrows'
366
+ }
367
+ )
368
+
369
+ worksheet9.conditional_formatting(
370
+ 'B9:F9',
371
+ {
372
+ :type => 'icon_set',
373
+ :icon_style => '5_ratings'
374
+ }
348
375
  )
349
376
 
350
377
  workbook.close
@@ -27,11 +27,6 @@
27
27
  :align => 'vcenter'
28
28
  )
29
29
 
30
- hyperlink_format = workbook.add_format(
31
- :color => 'blue',
32
- :underline => 1
33
- )
34
-
35
30
  headings = ['Features of WriteXLSX', '']
36
31
  worksheet.write_row('A1', headings, heading)
37
32
 
@@ -81,7 +76,7 @@
81
76
  # Hyperlinks
82
77
  #
83
78
  worksheet.write('A9', "Hyperlinks")
84
- worksheet.write('B9', 'http://www.ruby-lang.org/', hyperlink_format)
79
+ worksheet.write('B9', 'http://www.ruby-lang.org/')
85
80
 
86
81
  #######################################################################
87
82
  #
@@ -99,4 +94,3 @@
99
94
  worksheet.write('A19', "Multiple worksheets")
100
95
 
101
96
  workbook.close
102
-
@@ -22,13 +22,6 @@
22
22
  worksheet.set_column('A:A', 30)
23
23
  worksheet.set_selection('B1')
24
24
 
25
-
26
- # Add the standard url link format.
27
- url_format = workbook.add_format(
28
- :color => 'blue',
29
- :underline => 1
30
- )
31
-
32
25
  # Add a sample format.
33
26
  red_format = workbook.add_format(
34
27
  :color => 'red',
@@ -45,11 +38,11 @@
45
38
 
46
39
 
47
40
  # Write some hyperlinks
48
- worksheet.write('A1', 'http://www.perl.com/', url_format)
49
- worksheet.write('A3', 'http://www.perl.com/', url_format, str)
50
- worksheet.write('A5', 'http://www.perl.com/', url_format, str, tip)
41
+ worksheet.write('A1', 'http://www.perl.com/')
42
+ worksheet.write('A3', 'http://www.perl.com/', nil, str)
43
+ worksheet.write('A5', 'http://www.perl.com/', nil, str, tip)
51
44
  worksheet.write('A7', 'http://www.perl.com/', red_format)
52
- worksheet.write('A9', 'mailto:jmcnamara@cpan.org', url_format, 'Mail me')
45
+ worksheet.write('A9', 'mailto:jmcnamara@cpan.org', nil, 'Mail me')
53
46
 
54
47
  # Write a URL that isn't a hyperlink
55
48
  worksheet.write_string('A11', 'http://www.perl.com/')
@@ -10,7 +10,7 @@ module Writexlsx
10
10
  class Table
11
11
  include Writexlsx::Utility
12
12
 
13
- attr_reader :horizontal, :vertical, :outline, :show_keys
13
+ attr_reader :horizontal, :vertical, :outline, :show_keys, :font
14
14
 
15
15
  def initialize(params = {})
16
16
  @horizontal, @vertical, @outline, @show_keys = true, true, true, false
@@ -18,14 +18,22 @@ def initialize(params = {})
18
18
  @vertical = params[:vertical] if params.has_key?(:vertical)
19
19
  @outline = params[:outline] if params.has_key?(:outline)
20
20
  @show_keys = params[:show_keys] if params.has_key?(:show_keys)
21
+ @font = convert_font_args(params[:font])
22
+ end
23
+
24
+ def palette=(palette)
25
+ @palette = palette
21
26
  end
22
27
 
23
28
  def write_d_table(writer)
24
- writer.tag_elements('c:dTable') do
25
- writer.empty_tag('c:showHorzBorder', attributes) if ptrue?(horizontal)
26
- writer.empty_tag('c:showVertBorder', attributes) if ptrue?(vertical)
27
- writer.empty_tag('c:showOutline', attributes) if ptrue?(outline)
28
- writer.empty_tag('c:showKeys', attributes) if ptrue?(show_keys)
29
+ @writer = writer
30
+ @writer.tag_elements('c:dTable') do
31
+ @writer.empty_tag('c:showHorzBorder', attributes) if ptrue?(horizontal)
32
+ @writer.empty_tag('c:showVertBorder', attributes) if ptrue?(vertical)
33
+ @writer.empty_tag('c:showOutline', attributes) if ptrue?(outline)
34
+ @writer.empty_tag('c:showKeys', attributes) if ptrue?(show_keys)
35
+ # Write the table font.
36
+ write_tx_pr(nil, font) if ptrue?(font)
29
37
  end
30
38
  end
31
39
 
@@ -40,7 +48,7 @@ class ChartArea
40
48
  include Writexlsx::Utility
41
49
  include Writexlsx::Gradient
42
50
 
43
- attr_reader :line, :fill, :gradient, :layout
51
+ attr_reader :line, :fill, :pattern, :gradient, :layout
44
52
 
45
53
  def initialize(params = {})
46
54
  @layout = layout_properties(params[:layout])
@@ -51,6 +59,9 @@ def initialize(params = {})
51
59
  # Set the line properties for the chartarea.
52
60
  @line = border ? line_properties(border) : line_properties(params[:line])
53
61
 
62
+ # Set the pattern properties for the series.
63
+ @pattern = pattern_properties(params[:pattern])
64
+
54
65
  # Set the gradient fill properties for the series.
55
66
  @gradient = gradient_properties(params[:gradient])
56
67
 
@@ -58,9 +69,16 @@ def initialize(params = {})
58
69
  fill = params[:color] ? { :color => params[:color] } : params[:fill]
59
70
  @fill = fill_properties(fill)
60
71
 
61
- if ptrue?(@gradient)
72
+ # Pattern fill overrides solid fill.
73
+ if ptrue?(@pattern)
62
74
  @fill = nil
63
75
  end
76
+
77
+ # Gradient fill overrides solid and pattern fills.
78
+ if ptrue?(@gradient)
79
+ @pattern = nil
80
+ @fill = nil
81
+ end
64
82
  end
65
83
 
66
84
  private
@@ -254,6 +272,10 @@ def add_series(params)
254
272
  raise "Must specify ':categories' in add_series for this chart type"
255
273
  end
256
274
 
275
+ if @series.size == 255
276
+ raise "The maximum number of series that can be added to an Excel Chart is 255."
277
+ end
278
+
257
279
  @series << Series.new(self, params)
258
280
 
259
281
  # Set the secondary axis properties.
@@ -407,6 +429,7 @@ def set_size(params = {})
407
429
  #
408
430
  def set_table(params = {})
409
431
  @table = Table.new(params)
432
+ @table.palette = @palette
410
433
  end
411
434
 
412
435
  #
@@ -507,39 +530,6 @@ def write_bar_chart(params) # :nodoc:
507
530
  end
508
531
  end
509
532
 
510
- #
511
- # Convert user defined font values into private hash values.
512
- #
513
- def convert_font_args(params)
514
- return unless params
515
- font = params_to_font(params)
516
-
517
- # Convert font size units.
518
- font[:_size] *= 100 if font[:_size] && font[:_size] != 0
519
-
520
- # Convert rotation into 60,000ths of a degree.
521
- if ptrue?(font[:_rotation])
522
- font[:_rotation] = 60_000 * font[:_rotation].to_i
523
- end
524
-
525
- font
526
- end
527
-
528
- def params_to_font(params)
529
- {
530
- :_name => params[:name],
531
- :_color => params[:color],
532
- :_size => params[:size],
533
- :_bold => params[:bold],
534
- :_italic => params[:italic],
535
- :_underline => params[:underline],
536
- :_pitch_family => params[:pitch_family],
537
- :_charset => params[:charset],
538
- :_baseline => params[:baseline] || 0,
539
- :_rotation => params[:rotation]
540
- }
541
- end
542
-
543
533
  #
544
534
  # Switch name and name_formula parameters if required.
545
535
  #
@@ -662,20 +652,6 @@ def get_data_type(data) # :nodoc:
662
652
  'num'
663
653
  end
664
654
 
665
- #
666
- # Convert the user specified colour index or string to a rgb colour.
667
- #
668
- def color(color_code) # :nodoc:
669
- if color_code and color_code =~ /^#[0-9a-fA-F]{6}$/
670
- # Convert a HTML style #RRGGBB color.
671
- color_code.sub(/^#/, '').upcase
672
- else
673
- index = Format.color(color_code)
674
- raise "Unknown color '#{color_code}' used in chart formatting." unless index
675
- palette_color(index)
676
- end
677
- end
678
-
679
655
  #
680
656
  # Returns series which use the primary axes.
681
657
  #
@@ -713,38 +689,6 @@ def ids
713
689
  [id1, id2]
714
690
  end
715
691
 
716
- #
717
- # Get the font style attributes from a font hash.
718
- #
719
- def get_font_style_attributes(font)
720
- return [] unless font
721
-
722
- attributes = []
723
- attributes << ['sz', font[:_size]] if ptrue?(font[:_size])
724
- attributes << ['b', font[:_bold]] if font[:_bold]
725
- attributes << ['i', font[:_italic]] if font[:_italic]
726
- attributes << ['u', 'sng'] if font[:_underline]
727
-
728
- # Turn off baseline when testing fonts that don't have it.
729
- if font[:_baseline] != -1
730
- attributes << ['baseline', font[:_baseline]]
731
- end
732
- attributes
733
- end
734
-
735
- #
736
- # Get the font latin attributes from a font hash.
737
- #
738
- def get_font_latin_attributes(font)
739
- return [] unless font
740
-
741
- attributes = []
742
- attributes << ['typeface', font[:_name]] if ptrue?(font[:_name])
743
- attributes << ['pitchFamily', font[:_pitch_family]] if font[:_pitch_family]
744
- attributes << ['charset', font[:_charset]] if font[:_charset]
745
-
746
- attributes
747
- end
748
692
  #
749
693
  # Setup the default properties for a chart.
750
694
  #
@@ -1275,6 +1219,9 @@ def write_cat_axis(params) # :nodoc:
1275
1219
  # Write the c:majorTickMark element.
1276
1220
  write_major_tick_mark(x_axis.major_tick_mark)
1277
1221
 
1222
+ # Write the c:minorTickMark element.
1223
+ write_minor_tick_mark(x_axis.minor_tick_mark)
1224
+
1278
1225
  # Write the c:tickLblPos element.
1279
1226
  write_tick_label_pos(x_axis.label_position)
1280
1227
 
@@ -1298,6 +1245,8 @@ def write_cat_axis(params) # :nodoc:
1298
1245
  write_label_offset(100)
1299
1246
  # Write the c:tickLblSkip element.
1300
1247
  write_tick_lbl_skip(x_axis.interval_unit)
1248
+ # Write the c:tickMarkSkip element.
1249
+ write_tick_mark_skip(x_axis.interval_tick)
1301
1250
  end
1302
1251
  end
1303
1252
 
@@ -1347,6 +1296,9 @@ def write_val_axis_base(x_axis, y_axis, axis_ids_0, axis_ids_1, position) # :no
1347
1296
  # Write the c:majorTickMark element.
1348
1297
  write_major_tick_mark(y_axis.major_tick_mark)
1349
1298
 
1299
+ # Write the c:minorTickMark element.
1300
+ write_minor_tick_mark(y_axis.minor_tick_mark)
1301
+
1350
1302
  # Write the c:tickLblPos element.
1351
1303
  write_tick_label_pos(y_axis.label_position)
1352
1304
 
@@ -1436,6 +1388,8 @@ def write_date_axis(params) # :nodoc:
1436
1388
  write_label_offset(100)
1437
1389
  # Write the c:tickLblSkip element.
1438
1390
  write_tick_lbl_skip(x_axis.interval_unit)
1391
+ # Write the c:tickMarkSkip element.
1392
+ write_tick_mark_skip(x_axis.interval_tick)
1439
1393
  # Write the c:majorUnit element.
1440
1394
  write_c_major_unit(x_axis.major_unit)
1441
1395
  # Write the c:majorTimeUnit element.
@@ -1567,6 +1521,15 @@ def write_major_tick_mark(val)
1567
1521
  @writer.empty_tag('c:majorTickMark', [ ['val', val] ])
1568
1522
  end
1569
1523
 
1524
+ #
1525
+ # Write the <c:minorTickMark> element.
1526
+ #
1527
+ def write_minor_tick_mark(val)
1528
+ return unless ptrue?(val)
1529
+
1530
+ @writer.empty_tag('c:minorTickMark', [ ['val', val] ])
1531
+ end
1532
+
1570
1533
  #
1571
1534
  # Write the <c:tickLblPos> element.
1572
1535
  #
@@ -1630,6 +1593,15 @@ def write_tick_lbl_skip(val) # :nodoc:
1630
1593
  @writer.empty_tag('c:tickLblSkip', [ ['val', val] ])
1631
1594
  end
1632
1595
 
1596
+ #
1597
+ # Write the <c:tickMarkSkip> element.
1598
+ #
1599
+ def write_tick_mark_skip(val) # :nodoc:
1600
+ return unless val
1601
+
1602
+ @writer.empty_tag( 'c:tickMarkSkip', [ ['val', val] ])
1603
+ end
1604
+
1633
1605
  #
1634
1606
  # Write the <c:majorGridlines> element.
1635
1607
  #
@@ -1900,26 +1872,6 @@ def write_rich(title, horiz) # :nodoc:
1900
1872
  write_a_p_rich(title)
1901
1873
  end
1902
1874
  end
1903
-
1904
- #
1905
- # Write the <a:bodyPr> element.
1906
- #
1907
- def write_a_body_pr(rot, horiz = nil) # :nodoc:
1908
- rot = -5400000 if !rot && ptrue?(horiz)
1909
- attributes = []
1910
- attributes << ['rot', rot] if rot
1911
- attributes << ['vert', 'horz'] if ptrue?(horiz)
1912
-
1913
- @writer.empty_tag('a:bodyPr', attributes)
1914
- end
1915
-
1916
- #
1917
- # Write the <a:lstStyle> element.
1918
- #
1919
- def write_a_lst_style # :nodoc:
1920
- @writer.empty_tag('a:lstStyle')
1921
- end
1922
-
1923
1875
  #
1924
1876
  # Write the <a:p> element for rich string titles.
1925
1877
  #
@@ -1932,18 +1884,6 @@ def write_a_p_rich(title) # :nodoc:
1932
1884
  end
1933
1885
  end
1934
1886
 
1935
- #
1936
- # Write the <a:p> element for formula titles.
1937
- #
1938
- def write_a_p_formula(font = nil) # :nodoc:
1939
- @writer.tag_elements('a:p') do
1940
- # Write the a:pPr element.
1941
- write_a_p_pr_formula(font)
1942
- # Write the a:endParaRPr element.
1943
- write_a_end_para_rpr
1944
- end
1945
- end
1946
-
1947
1887
  #
1948
1888
  # Write the <a:pPr> element for rich string titles.
1949
1889
  #
@@ -1951,30 +1891,6 @@ def write_a_p_pr_rich(font) # :nodoc:
1951
1891
  @writer.tag_elements('a:pPr') { write_a_def_rpr(font) }
1952
1892
  end
1953
1893
 
1954
- #
1955
- # Write the <a:pPr> element for formula titles.
1956
- #
1957
- def write_a_p_pr_formula(font) # :nodoc:
1958
- @writer.tag_elements('a:pPr') { write_a_def_rpr(font) }
1959
- end
1960
-
1961
- #
1962
- # Write the <a:defRPr> element.
1963
- #
1964
- def write_a_def_rpr(font = nil) # :nodoc:
1965
- write_def_rpr_r_pr_common(
1966
- font,
1967
- get_font_style_attributes(font),
1968
- 'a:defRPr')
1969
- end
1970
-
1971
- #
1972
- # Write the <a:endParaRPr> element.
1973
- #
1974
- def write_a_end_para_rpr # :nodoc:
1975
- @writer.empty_tag('a:endParaRPr', [ ['lang', 'en-US'] ])
1976
- end
1977
-
1978
1894
  #
1979
1895
  # Write the <a:r> element.
1980
1896
  #
@@ -1998,24 +1914,6 @@ def write_a_r_pr(font) # :nodoc:
1998
1914
  write_def_rpr_r_pr_common(font, attributes, 'a:rPr')
1999
1915
  end
2000
1916
 
2001
- def write_def_rpr_r_pr_common(font, style_attributes, tag) # :nodoc:
2002
- latin_attributes = get_font_latin_attributes(font)
2003
- has_color = ptrue?(font) && ptrue?(font[:_color])
2004
-
2005
- if !latin_attributes.empty? || has_color
2006
- @writer.tag_elements(tag, style_attributes) do
2007
- if has_color
2008
- write_a_solid_fill(:color => font[:_color])
2009
- end
2010
- if !latin_attributes.empty?
2011
- write_a_latin(latin_attributes)
2012
- end
2013
- end
2014
- else
2015
- @writer.empty_tag(tag, style_attributes)
2016
- end
2017
- end
2018
-
2019
1917
  #
2020
1918
  # Write the <a:t> element.
2021
1919
  #
@@ -2023,24 +1921,6 @@ def write_a_t(title) # :nodoc:
2023
1921
  @writer.data_element('a:t', title)
2024
1922
  end
2025
1923
 
2026
- #
2027
- # Write the <c:txPr> element.
2028
- #
2029
- def write_tx_pr(horiz, font) # :nodoc:
2030
- rotation = nil
2031
- if font && font[:_rotation]
2032
- rotation = font[:_rotation]
2033
- end
2034
- @writer.tag_elements('c:txPr') do
2035
- # Write the a:bodyPr element.
2036
- write_a_body_pr(rotation, horiz)
2037
- # Write the a:lstStyle element.
2038
- write_a_lst_style
2039
- # Write the a:p element.
2040
- write_a_p_formula(font)
2041
- end
2042
- end
2043
-
2044
1924
  #
2045
1925
  # Write the <c:marker> element.
2046
1926
  #
@@ -2090,10 +1970,11 @@ def write_symbol(val) # :nodoc:
2090
1970
  def write_sp_pr(series) # :nodoc:
2091
1971
  line = series.line
2092
1972
  fill = series.fill
1973
+ pattern = series.pattern if series.respond_to?(:pattern)
2093
1974
  gradient = series.gradient if series.respond_to?(:gradient)
2094
1975
 
2095
1976
  return if (!line || !ptrue?(line[:_defined])) &&
2096
- (!fill || !ptrue?(fill[:_defined])) && !gradient
1977
+ (!fill || !ptrue?(fill[:_defined])) && !pattern && !gradient
2097
1978
 
2098
1979
  @writer.tag_elements('c:spPr') do
2099
1980
  # Write the fill elements for solid charts such as pie/doughnut and bar.
@@ -2106,6 +1987,9 @@ def write_sp_pr(series) # :nodoc:
2106
1987
  write_a_solid_fill(fill)
2107
1988
  end
2108
1989
  end
1990
+ if ptrue?(pattern)
1991
+ write_a_patt_fill(pattern)
1992
+ end
2109
1993
  if ptrue?(gradient)
2110
1994
  # Write the a:gradFill element.
2111
1995
  write_a_grad_fill(gradient)
@@ -2158,20 +2042,12 @@ def write_a_no_fill # :nodoc:
2158
2042
  end
2159
2043
 
2160
2044
  #
2161
- # Write the <a:solidFill> element.
2045
+ # Write the <a:alpha> element.
2162
2046
  #
2163
- def write_a_solid_fill(line) # :nodoc:
2164
- @writer.tag_elements('a:solidFill') do
2165
- # Write the a:srgbClr element.
2166
- write_a_srgb_clr(color(line[:color])) if line[:color]
2167
- end
2168
- end
2047
+ def write_a_alpha(val)
2048
+ val = (100 - val.to_i) * 1000
2169
2049
 
2170
- #
2171
- # Write the <a:srgbClr> element.
2172
- #
2173
- def write_a_srgb_clr(val) # :nodoc:
2174
- @writer.empty_tag('a:srgbClr', [ ['val', val] ])
2050
+ @writer.empty_tag('a:alpha', [ ['val', val] ])
2175
2051
  end
2176
2052
 
2177
2053
  #
@@ -2202,6 +2078,20 @@ def write_trendline(trendline) # :nodoc:
2202
2078
  write_forward(trendline.forward)
2203
2079
  # Write the c:backward element.
2204
2080
  write_backward(trendline.backward)
2081
+ if trendline.intercept
2082
+ # Write the c:intercept element.
2083
+ write_intercept(trendline.intercept)
2084
+ end
2085
+ if trendline.display_r_squared
2086
+ # Write the c:dispRSqr element.
2087
+ write_disp_rsqr
2088
+ end
2089
+ if trendline.display_equation
2090
+ # Write the c:dispEq element.
2091
+ write_disp_eq
2092
+ # Write the c:trendlineLbl element.
2093
+ write_trendline_lbl
2094
+ end
2205
2095
  end
2206
2096
  end
2207
2097
 
@@ -2253,6 +2143,54 @@ def write_backward(val) # :nodoc:
2253
2143
  @writer.empty_tag('c:backward', [ ['val', val] ])
2254
2144
  end
2255
2145
 
2146
+ #
2147
+ # Write the <c:intercept> element.
2148
+ #
2149
+ def write_intercept(val)
2150
+ @writer.empty_tag('c:intercept', [ ['val', val] ])
2151
+ end
2152
+
2153
+ #
2154
+ # Write the <c:dispEq> element.
2155
+ #
2156
+ def write_disp_eq
2157
+ @writer.empty_tag('c:dispEq', [ ['val', 1] ])
2158
+ end
2159
+
2160
+ #
2161
+ # Write the <c:dispRSqr> element.
2162
+ #
2163
+ def write_disp_rsqr
2164
+ @writer.empty_tag('c:dispRSqr', [ ['val', 1] ])
2165
+ end
2166
+
2167
+ #
2168
+ # Write the <c:trendlineLbl> element.
2169
+ #
2170
+ def write_trendline_lbl
2171
+ @writer.tag_elements('c:trendlineLbl') do
2172
+ # Write the c:layout element.
2173
+ write_layout
2174
+ # Write the c:numFmt element.
2175
+ write_trendline_num_fmt
2176
+ end
2177
+ end
2178
+
2179
+ #
2180
+ # Write the <c:numFmt> element.
2181
+ #
2182
+ def write_trendline_num_fmt
2183
+ format_code = 'General'
2184
+ source_linked = 0
2185
+
2186
+ attributes = [
2187
+ ['formatCode', format_code],
2188
+ ['sourceLinked', source_linked]
2189
+ ]
2190
+
2191
+ @writer.empty_tag('c:numFmt', attributes)
2192
+ end
2193
+
2256
2194
  #
2257
2195
  # Write the <c:hiLowLines> element.
2258
2196
  #
@@ -2829,6 +2767,26 @@ def write_a_tile_rect(type)
2829
2767
  @writer.empty_tag('a:tileRect', attributes)
2830
2768
  end
2831
2769
 
2770
+ #
2771
+ # Write the <a:pattFill> element.
2772
+ #
2773
+ def write_a_patt_fill(pattern)
2774
+ attributes = [ ['prst', pattern[:pattern]] ]
2775
+
2776
+ @writer.tag_elements('a:pattFill', attributes) do
2777
+ write_a_fg_clr(pattern[:fg_color])
2778
+ write_a_bg_clr(pattern[:bg_color])
2779
+ end
2780
+ end
2781
+
2782
+ def write_a_fg_clr(color)
2783
+ @writer.tag_elements('a:fgClr') { write_a_srgb_clr(color(color)) }
2784
+ end
2785
+
2786
+ def write_a_bg_clr(color)
2787
+ @writer.tag_elements('a:bgClr') { write_a_srgb_clr(color(color)) }
2788
+ end
2789
+
2832
2790
  def write_bars_base(tag, format)
2833
2791
  if format.line_defined? || format.fill_defined?
2834
2792
  @writer.tag_elements(tag) { write_sp_pr(format) }