write_xlsx 0.64.1 → 0.65.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.
- checksums.yaml +4 -4
 - data/README.rdoc +10 -1
 - data/examples/conditional_format.rb +251 -18
 - data/examples/demo.rb +2 -3
 - data/examples/macros.rb +42 -0
 - data/examples/outline_collapsed.rb +160 -0
 - data/examples/republic.png +0 -0
 - data/examples/shape3.rb +2 -2
 - data/examples/shape4.rb +5 -5
 - data/examples/shape5.rb +6 -6
 - data/examples/shape6.rb +6 -6
 - data/examples/shape7.rb +11 -11
 - data/examples/shape8.rb +10 -10
 - data/examples/shape_all.rb +0 -0
 - data/examples/vbaProject.bin +0 -0
 - data/lib/write_xlsx/chart.rb +656 -56
 - data/lib/write_xlsx/chartsheet.rb +26 -2
 - data/lib/write_xlsx/format.rb +50 -27
 - data/lib/write_xlsx/formats.rb +32 -0
 - data/lib/write_xlsx/package/packager.rb +45 -238
 - data/lib/write_xlsx/package/table.rb +9 -18
 - data/lib/write_xlsx/package/xml_writer_simple.rb +26 -9
 - data/lib/write_xlsx/sheets.rb +223 -0
 - data/lib/write_xlsx/sparkline.rb +140 -4
 - data/lib/write_xlsx/version.rb +1 -1
 - data/lib/write_xlsx/workbook.rb +34 -121
 - data/lib/write_xlsx/worksheet/data_validation.rb +291 -0
 - data/lib/write_xlsx/worksheet/hyperlink.rb +111 -0
 - data/lib/write_xlsx/worksheet/page_setup.rb +170 -0
 - data/lib/write_xlsx/worksheet.rb +1112 -1334
 - data/test/helper.rb +1 -1
 - data/test/package/styles/test_styles_01.rb +1 -10
 - data/test/package/styles/test_styles_02.rb +1 -10
 - data/test/package/styles/test_styles_03.rb +1 -10
 - data/test/package/styles/test_styles_04.rb +1 -10
 - data/test/package/styles/test_styles_05.rb +1 -10
 - data/test/package/styles/test_styles_06.rb +1 -10
 - data/test/package/styles/test_styles_07.rb +1 -10
 - data/test/package/styles/test_styles_08.rb +1 -10
 - data/test/package/styles/test_styles_09.rb +1 -10
 - data/test/perl_output/conditional_format.xlsx +0 -0
 - data/test/perl_output/outline_collapsed.xlsx +0 -0
 - data/test/perl_output/protection.xlsx +0 -0
 - data/test/regression/test_chart_gap01.rb +47 -0
 - data/test/regression/test_chart_gap02.rb +47 -0
 - data/test/regression/test_chart_gap03.rb +47 -0
 - data/test/regression/test_format05.rb +26 -0
 - data/test/regression/test_rich_string12.rb +32 -0
 - data/test/regression/xlsx_files/chart_gap01.xlsx +0 -0
 - data/test/regression/xlsx_files/chart_gap02.xlsx +0 -0
 - data/test/regression/xlsx_files/chart_gap03.xlsx +0 -0
 - data/test/regression/xlsx_files/format05.xlsx +0 -0
 - data/test/regression/xlsx_files/rich_string12.xlsx +0 -0
 - data/test/test_example_match.rb +253 -20
 - data/test/worksheet/test_set_column.rb +25 -0
 - data/test/worksheet/test_worksheet_03.rb +1 -1
 - data/test/worksheet/test_worksheet_04.rb +1 -1
 - data/test/worksheet/test_write_array_formula_01.rb +7 -0
 - data/test/worksheet/test_write_col_breaks.rb +2 -2
 - data/test/worksheet/test_write_col_info.rb +8 -8
 - data/test/worksheet/test_write_conditional_formatting.rb +4 -4
 - data/test/worksheet/test_write_formula_does_not_change_formula_string.rb +18 -0
 - data/test/worksheet/test_write_header_footer.rb +8 -3
 - data/test/worksheet/test_write_hyperlink.rb +10 -5
 - data/test/worksheet/test_write_merge_cells.rb +6 -6
 - data/test/worksheet/test_write_page_set_up_pr.rb +1 -1
 - data/test/worksheet/test_write_page_setup.rb +1 -1
 - data/test/worksheet/test_write_row_breaks.rb +2 -2
 - data/test/worksheet/test_write_row_element.rb +1 -1
 - data/test/worksheet/test_write_sheet_pr.rb +2 -2
 - data/test/worksheet/test_write_sheet_view.rb +0 -9
 - data/test/worksheet/test_write_url.rb +19 -0
 - data/test/worksheet/test_write_worksheet_attributes.rb +21 -0
 - metadata +38 -5
 - data/lib/write_xlsx/worksheet/print_style.rb +0 -51
 - data/test/worksheet/test_write_worksheet.rb +0 -19
 
    
        data/test/test_example_match.rb
    CHANGED
    
    | 
         @@ -1219,6 +1219,13 @@ EOS 
     | 
|
| 
       1219 
1219 
     | 
    
         
             
                @xlsx = 'conditional_format.xlsx'
         
     | 
| 
       1220 
1220 
     | 
    
         
             
                workbook  = WriteXLSX.new(@xlsx)
         
     | 
| 
       1221 
1221 
     | 
    
         
             
                worksheet1 = workbook.add_worksheet
         
     | 
| 
      
 1222 
     | 
    
         
            +
                worksheet2 = workbook.add_worksheet
         
     | 
| 
      
 1223 
     | 
    
         
            +
                worksheet3 = workbook.add_worksheet
         
     | 
| 
      
 1224 
     | 
    
         
            +
                worksheet4 = workbook.add_worksheet
         
     | 
| 
      
 1225 
     | 
    
         
            +
                worksheet5 = workbook.add_worksheet
         
     | 
| 
      
 1226 
     | 
    
         
            +
                worksheet6 = workbook.add_worksheet
         
     | 
| 
      
 1227 
     | 
    
         
            +
                worksheet7 = workbook.add_worksheet
         
     | 
| 
      
 1228 
     | 
    
         
            +
                worksheet8 = workbook.add_worksheet
         
     | 
| 
       1222 
1229 
     | 
    
         | 
| 
       1223 
1230 
     | 
    
         
             
                # Light red fill with dark red text.
         
     | 
| 
       1224 
1231 
     | 
    
         
             
                format1 = workbook.add_format(
         
     | 
| 
         @@ -1234,24 +1241,24 @@ EOS 
     | 
|
| 
       1234 
1241 
     | 
    
         | 
| 
       1235 
1242 
     | 
    
         
             
                # Some sample data to run the conditional formatting against.
         
     | 
| 
       1236 
1243 
     | 
    
         
             
                data = [
         
     | 
| 
       1237 
     | 
    
         
            -
                        [  
     | 
| 
       1238 
     | 
    
         
            -
                        [  
     | 
| 
       1239 
     | 
    
         
            -
                        [  
     | 
| 
       1240 
     | 
    
         
            -
                        [  
     | 
| 
       1241 
     | 
    
         
            -
                        [  
     | 
| 
       1242 
     | 
    
         
            -
                        [  
     | 
| 
       1243 
     | 
    
         
            -
                        [  
     | 
| 
       1244 
     | 
    
         
            -
                        [  
     | 
| 
       1245 
     | 
    
         
            -
                        [  
     | 
| 
       1246 
     | 
    
         
            -
                        [  
     | 
| 
      
 1244 
     | 
    
         
            +
                        [ 34, 72,  38, 30, 75, 48, 75, 66, 84, 86 ],
         
     | 
| 
      
 1245 
     | 
    
         
            +
                        [ 6,  24,  1,  84, 54, 62, 60, 3,  26, 59 ],
         
     | 
| 
      
 1246 
     | 
    
         
            +
                        [ 28, 79,  97, 13, 85, 93, 93, 22, 5,  14 ],
         
     | 
| 
      
 1247 
     | 
    
         
            +
                        [ 27, 71,  40, 17, 18, 79, 90, 93, 29, 47 ],
         
     | 
| 
      
 1248 
     | 
    
         
            +
                        [ 88, 25,  33, 23, 67, 1,  59, 79, 47, 36 ],
         
     | 
| 
      
 1249 
     | 
    
         
            +
                        [ 24, 100, 20, 88, 29, 33, 38, 54, 54, 88 ],
         
     | 
| 
      
 1250 
     | 
    
         
            +
                        [ 6,  57,  88, 28, 10, 26, 37, 7,  41, 48 ],
         
     | 
| 
      
 1251 
     | 
    
         
            +
                        [ 52, 78,  1,  96, 26, 45, 47, 33, 96, 36 ],
         
     | 
| 
      
 1252 
     | 
    
         
            +
                        [ 60, 54,  81, 66, 81, 90, 80, 93, 12, 55 ],
         
     | 
| 
      
 1253 
     | 
    
         
            +
                        [ 70, 5,   46, 14, 71, 19, 66, 36, 41, 21 ]
         
     | 
| 
       1247 
1254 
     | 
    
         
             
                       ]
         
     | 
| 
       1248 
1255 
     | 
    
         | 
| 
       1249 
     | 
    
         
            -
             
     | 
| 
       1250 
     | 
    
         
            -
                # 
     | 
| 
       1251 
     | 
    
         
            -
                #  
     | 
| 
       1252 
     | 
    
         
            -
             
     | 
| 
      
 1256 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1257 
     | 
    
         
            +
                #
         
     | 
| 
      
 1258 
     | 
    
         
            +
                # Example 1.
         
     | 
| 
      
 1259 
     | 
    
         
            +
                #
         
     | 
| 
       1253 
1260 
     | 
    
         
             
                caption = 'Cells with values >= 50 are in light red. ' +
         
     | 
| 
       1254 
     | 
    
         
            -
                  'Values < 50 are in light green'
         
     | 
| 
      
 1261 
     | 
    
         
            +
                  'Values < 50 are in light green.'
         
     | 
| 
       1255 
1262 
     | 
    
         | 
| 
       1256 
1263 
     | 
    
         
             
                # Write the data.
         
     | 
| 
       1257 
1264 
     | 
    
         
             
                worksheet1.write('A1', caption)
         
     | 
| 
         @@ -1261,9 +1268,9 @@ EOS 
     | 
|
| 
       1261 
1268 
     | 
    
         
             
                worksheet1.conditional_formatting('B3:K12',
         
     | 
| 
       1262 
1269 
     | 
    
         
             
                                                  {
         
     | 
| 
       1263 
1270 
     | 
    
         
             
                                                    :type     => 'cell',
         
     | 
| 
       1264 
     | 
    
         
            -
                                                    :format   => format1,
         
     | 
| 
       1265 
1271 
     | 
    
         
             
                                                    :criteria => '>=',
         
     | 
| 
       1266 
     | 
    
         
            -
                                                    :value    => 50
         
     | 
| 
      
 1272 
     | 
    
         
            +
                                                    :value    => 50,
         
     | 
| 
      
 1273 
     | 
    
         
            +
                                                    :format   => format1
         
     | 
| 
       1267 
1274 
     | 
    
         
             
                                                  }
         
     | 
| 
       1268 
1275 
     | 
    
         
             
                                                  )
         
     | 
| 
       1269 
1276 
     | 
    
         | 
| 
         @@ -1271,9 +1278,235 @@ EOS 
     | 
|
| 
       1271 
1278 
     | 
    
         
             
                worksheet1.conditional_formatting('B3:K12',
         
     | 
| 
       1272 
1279 
     | 
    
         
             
                                                  {
         
     | 
| 
       1273 
1280 
     | 
    
         
             
                                                    :type     => 'cell',
         
     | 
| 
      
 1281 
     | 
    
         
            +
                                                    :criteria => '<',
         
     | 
| 
      
 1282 
     | 
    
         
            +
                                                    :value    => 50,
         
     | 
| 
      
 1283 
     | 
    
         
            +
                                                    :format   => format2
         
     | 
| 
      
 1284 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1285 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1286 
     | 
    
         
            +
             
     | 
| 
      
 1287 
     | 
    
         
            +
             
     | 
| 
      
 1288 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1289 
     | 
    
         
            +
                #
         
     | 
| 
      
 1290 
     | 
    
         
            +
                # Example 2.
         
     | 
| 
      
 1291 
     | 
    
         
            +
                #
         
     | 
| 
      
 1292 
     | 
    
         
            +
                caption = 'Values between 30 and 70 are in light red. ' +
         
     | 
| 
      
 1293 
     | 
    
         
            +
                  'Values outside that range are in light green.'
         
     | 
| 
      
 1294 
     | 
    
         
            +
             
     | 
| 
      
 1295 
     | 
    
         
            +
                worksheet2.write('A1', caption)
         
     | 
| 
      
 1296 
     | 
    
         
            +
                worksheet2.write_col('B3', data)
         
     | 
| 
      
 1297 
     | 
    
         
            +
             
     | 
| 
      
 1298 
     | 
    
         
            +
                worksheet2.conditional_formatting('B3:K12',
         
     | 
| 
      
 1299 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1300 
     | 
    
         
            +
                                                    :type     => 'cell',
         
     | 
| 
      
 1301 
     | 
    
         
            +
                                                    :criteria => 'between',
         
     | 
| 
      
 1302 
     | 
    
         
            +
                                                    :minimum  => 30,
         
     | 
| 
      
 1303 
     | 
    
         
            +
                                                    :maximum  => 70,
         
     | 
| 
      
 1304 
     | 
    
         
            +
                                                    :format   => format1
         
     | 
| 
      
 1305 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1306 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1307 
     | 
    
         
            +
             
     | 
| 
      
 1308 
     | 
    
         
            +
                worksheet2.conditional_formatting('B3:K12',
         
     | 
| 
      
 1309 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1310 
     | 
    
         
            +
                                                    :type     => 'cell',
         
     | 
| 
      
 1311 
     | 
    
         
            +
                                                    :criteria => 'not between',
         
     | 
| 
      
 1312 
     | 
    
         
            +
                                                    :minimum  => 30,
         
     | 
| 
      
 1313 
     | 
    
         
            +
                                                    :maximum  => 70,
         
     | 
| 
      
 1314 
     | 
    
         
            +
                                                    :format   => format2
         
     | 
| 
      
 1315 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1316 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1317 
     | 
    
         
            +
             
     | 
| 
      
 1318 
     | 
    
         
            +
             
     | 
| 
      
 1319 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1320 
     | 
    
         
            +
                #
         
     | 
| 
      
 1321 
     | 
    
         
            +
                # Example 3.
         
     | 
| 
      
 1322 
     | 
    
         
            +
                #
         
     | 
| 
      
 1323 
     | 
    
         
            +
                caption = 'Duplicate values are in light red. ' +
         
     | 
| 
      
 1324 
     | 
    
         
            +
                  'Unique values are in light green.'
         
     | 
| 
      
 1325 
     | 
    
         
            +
             
     | 
| 
      
 1326 
     | 
    
         
            +
                worksheet3.write('A1', caption)
         
     | 
| 
      
 1327 
     | 
    
         
            +
                worksheet3.write_col('B3', data)
         
     | 
| 
      
 1328 
     | 
    
         
            +
             
     | 
| 
      
 1329 
     | 
    
         
            +
                worksheet3.conditional_formatting('B3:K12',
         
     | 
| 
      
 1330 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1331 
     | 
    
         
            +
                                                    :type     => 'duplicate',
         
     | 
| 
      
 1332 
     | 
    
         
            +
                                                    :format   => format1,
         
     | 
| 
      
 1333 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1334 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1335 
     | 
    
         
            +
             
     | 
| 
      
 1336 
     | 
    
         
            +
                worksheet3.conditional_formatting('B3:K12',
         
     | 
| 
      
 1337 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1338 
     | 
    
         
            +
                                                    :type     => 'unique',
         
     | 
| 
       1274 
1339 
     | 
    
         
             
                                                    :format   => format2,
         
     | 
| 
      
 1340 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1341 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1342 
     | 
    
         
            +
             
     | 
| 
      
 1343 
     | 
    
         
            +
             
     | 
| 
      
 1344 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1345 
     | 
    
         
            +
                #
         
     | 
| 
      
 1346 
     | 
    
         
            +
                # Example 4.
         
     | 
| 
      
 1347 
     | 
    
         
            +
                #
         
     | 
| 
      
 1348 
     | 
    
         
            +
                caption = 'Above average values are in light red. ' +
         
     | 
| 
      
 1349 
     | 
    
         
            +
                  'Below average values are in light green.'
         
     | 
| 
      
 1350 
     | 
    
         
            +
             
     | 
| 
      
 1351 
     | 
    
         
            +
                worksheet4.write('A1', caption)
         
     | 
| 
      
 1352 
     | 
    
         
            +
                worksheet4.write_col('B3', data)
         
     | 
| 
      
 1353 
     | 
    
         
            +
             
     | 
| 
      
 1354 
     | 
    
         
            +
                worksheet4.conditional_formatting('B3:K12',
         
     | 
| 
      
 1355 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1356 
     | 
    
         
            +
                                                    :type     => 'average',
         
     | 
| 
      
 1357 
     | 
    
         
            +
                                                    :criteria => 'above',
         
     | 
| 
      
 1358 
     | 
    
         
            +
                                                    :format   => format1
         
     | 
| 
      
 1359 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1360 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1361 
     | 
    
         
            +
             
     | 
| 
      
 1362 
     | 
    
         
            +
                worksheet4.conditional_formatting('B3:K12',
         
     | 
| 
      
 1363 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1364 
     | 
    
         
            +
                                                    :type     => 'average',
         
     | 
| 
      
 1365 
     | 
    
         
            +
                                                    :criteria => 'below',
         
     | 
| 
      
 1366 
     | 
    
         
            +
                                                    :format   => format2
         
     | 
| 
      
 1367 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1368 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1369 
     | 
    
         
            +
             
     | 
| 
      
 1370 
     | 
    
         
            +
             
     | 
| 
      
 1371 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1372 
     | 
    
         
            +
                #
         
     | 
| 
      
 1373 
     | 
    
         
            +
                # Example 5.
         
     | 
| 
      
 1374 
     | 
    
         
            +
                #
         
     | 
| 
      
 1375 
     | 
    
         
            +
                caption = 'Top 10 values are in light red. ' +
         
     | 
| 
      
 1376 
     | 
    
         
            +
                  'Bottom 10 values are in light green.'
         
     | 
| 
      
 1377 
     | 
    
         
            +
             
     | 
| 
      
 1378 
     | 
    
         
            +
                worksheet5.write('A1', caption)
         
     | 
| 
      
 1379 
     | 
    
         
            +
                worksheet5.write_col('B3', data)
         
     | 
| 
      
 1380 
     | 
    
         
            +
             
     | 
| 
      
 1381 
     | 
    
         
            +
                worksheet5.conditional_formatting('B3:K12',
         
     | 
| 
      
 1382 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1383 
     | 
    
         
            +
                                                    :type     => 'top',
         
     | 
| 
      
 1384 
     | 
    
         
            +
                                                    :value    => '10',
         
     | 
| 
      
 1385 
     | 
    
         
            +
                                                    :format   => format1
         
     | 
| 
      
 1386 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1387 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1388 
     | 
    
         
            +
             
     | 
| 
      
 1389 
     | 
    
         
            +
                worksheet5.conditional_formatting('B3:K12',
         
     | 
| 
      
 1390 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1391 
     | 
    
         
            +
                                                    :type     => 'bottom',
         
     | 
| 
      
 1392 
     | 
    
         
            +
                                                    :value    => '10',
         
     | 
| 
      
 1393 
     | 
    
         
            +
                                                    :format   => format2
         
     | 
| 
      
 1394 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1395 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1396 
     | 
    
         
            +
             
     | 
| 
      
 1397 
     | 
    
         
            +
             
     | 
| 
      
 1398 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1399 
     | 
    
         
            +
                #
         
     | 
| 
      
 1400 
     | 
    
         
            +
                # Example 6.
         
     | 
| 
      
 1401 
     | 
    
         
            +
                #
         
     | 
| 
      
 1402 
     | 
    
         
            +
                caption = 'Cells with values >= 50 are in light red. ' +
         
     | 
| 
      
 1403 
     | 
    
         
            +
                  'Values < 50 are in light green. Non-contiguous ranges.'
         
     | 
| 
      
 1404 
     | 
    
         
            +
             
     | 
| 
      
 1405 
     | 
    
         
            +
                # Write the data.
         
     | 
| 
      
 1406 
     | 
    
         
            +
                worksheet6.write('A1', caption)
         
     | 
| 
      
 1407 
     | 
    
         
            +
                worksheet6.write_col('B3', data)
         
     | 
| 
      
 1408 
     | 
    
         
            +
             
     | 
| 
      
 1409 
     | 
    
         
            +
                # Write a conditional format over a range.
         
     | 
| 
      
 1410 
     | 
    
         
            +
                worksheet6.conditional_formatting('B3:K6,B9:K12',
         
     | 
| 
      
 1411 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1412 
     | 
    
         
            +
                                                    :type     => 'cell',
         
     | 
| 
      
 1413 
     | 
    
         
            +
                                                    :criteria => '>=',
         
     | 
| 
      
 1414 
     | 
    
         
            +
                                                    :value    => 50,
         
     | 
| 
      
 1415 
     | 
    
         
            +
                                                    :format   => format1
         
     | 
| 
      
 1416 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1417 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1418 
     | 
    
         
            +
             
     | 
| 
      
 1419 
     | 
    
         
            +
                # Write another conditional format over the same range.
         
     | 
| 
      
 1420 
     | 
    
         
            +
                worksheet6.conditional_formatting('B3:K6,B9:K12',
         
     | 
| 
      
 1421 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1422 
     | 
    
         
            +
                                                    :type     => 'cell',
         
     | 
| 
       1275 
1423 
     | 
    
         
             
                                                    :criteria => '<',
         
     | 
| 
       1276 
     | 
    
         
            -
                                                    :value    => 50
         
     | 
| 
      
 1424 
     | 
    
         
            +
                                                    :value    => 50,
         
     | 
| 
      
 1425 
     | 
    
         
            +
                                                    :format   => format2
         
     | 
| 
      
 1426 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1427 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1428 
     | 
    
         
            +
             
     | 
| 
      
 1429 
     | 
    
         
            +
             
     | 
| 
      
 1430 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1431 
     | 
    
         
            +
                #
         
     | 
| 
      
 1432 
     | 
    
         
            +
                # Example 7.
         
     | 
| 
      
 1433 
     | 
    
         
            +
                #
         
     | 
| 
      
 1434 
     | 
    
         
            +
                caption = 'Examples of color scales and data bars. Default colors.'
         
     | 
| 
      
 1435 
     | 
    
         
            +
             
     | 
| 
      
 1436 
     | 
    
         
            +
                data = 1 .. 12
         
     | 
| 
      
 1437 
     | 
    
         
            +
             
     | 
| 
      
 1438 
     | 
    
         
            +
                worksheet7.write('A1', caption)
         
     | 
| 
      
 1439 
     | 
    
         
            +
             
     | 
| 
      
 1440 
     | 
    
         
            +
                worksheet7.write('B2', "2 Color Scale")
         
     | 
| 
      
 1441 
     | 
    
         
            +
                worksheet7.write_col('B3', data)
         
     | 
| 
      
 1442 
     | 
    
         
            +
             
     | 
| 
      
 1443 
     | 
    
         
            +
                worksheet7.write('D2', "3 Color Scale")
         
     | 
| 
      
 1444 
     | 
    
         
            +
                worksheet7.write_col('D3', data)
         
     | 
| 
      
 1445 
     | 
    
         
            +
             
     | 
| 
      
 1446 
     | 
    
         
            +
                worksheet7.write('F2', "Data Bars")
         
     | 
| 
      
 1447 
     | 
    
         
            +
                worksheet7.write_col('F3', data)
         
     | 
| 
      
 1448 
     | 
    
         
            +
             
     | 
| 
      
 1449 
     | 
    
         
            +
             
     | 
| 
      
 1450 
     | 
    
         
            +
                worksheet7.conditional_formatting('B3:B14',
         
     | 
| 
      
 1451 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1452 
     | 
    
         
            +
                                                    :type => '2_color_scale'
         
     | 
| 
      
 1453 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1454 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1455 
     | 
    
         
            +
             
     | 
| 
      
 1456 
     | 
    
         
            +
                worksheet7.conditional_formatting('D3:D14',
         
     | 
| 
      
 1457 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1458 
     | 
    
         
            +
                                                    :type => '3_color_scale'
         
     | 
| 
      
 1459 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1460 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1461 
     | 
    
         
            +
             
     | 
| 
      
 1462 
     | 
    
         
            +
                worksheet7.conditional_formatting('F3:F14',
         
     | 
| 
      
 1463 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1464 
     | 
    
         
            +
                                                    :type => 'data_bar'
         
     | 
| 
      
 1465 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1466 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1467 
     | 
    
         
            +
             
     | 
| 
      
 1468 
     | 
    
         
            +
             
     | 
| 
      
 1469 
     | 
    
         
            +
                ###############################################################################
         
     | 
| 
      
 1470 
     | 
    
         
            +
                #
         
     | 
| 
      
 1471 
     | 
    
         
            +
                # Example 8.
         
     | 
| 
      
 1472 
     | 
    
         
            +
                #
         
     | 
| 
      
 1473 
     | 
    
         
            +
                caption = 'Examples of color scales and data bars. Modified colors.'
         
     | 
| 
      
 1474 
     | 
    
         
            +
             
     | 
| 
      
 1475 
     | 
    
         
            +
                data = 1 .. 12
         
     | 
| 
      
 1476 
     | 
    
         
            +
             
     | 
| 
      
 1477 
     | 
    
         
            +
                worksheet8.write('A1', caption)
         
     | 
| 
      
 1478 
     | 
    
         
            +
             
     | 
| 
      
 1479 
     | 
    
         
            +
                worksheet8.write('B2', "2 Color Scale")
         
     | 
| 
      
 1480 
     | 
    
         
            +
                worksheet8.write_col('B3', data)
         
     | 
| 
      
 1481 
     | 
    
         
            +
             
     | 
| 
      
 1482 
     | 
    
         
            +
                worksheet8.write('D2', "3 Color Scale")
         
     | 
| 
      
 1483 
     | 
    
         
            +
                worksheet8.write_col('D3', data)
         
     | 
| 
      
 1484 
     | 
    
         
            +
             
     | 
| 
      
 1485 
     | 
    
         
            +
                worksheet8.write('F2', "Data Bars")
         
     | 
| 
      
 1486 
     | 
    
         
            +
                worksheet8.write_col('F3', data)
         
     | 
| 
      
 1487 
     | 
    
         
            +
             
     | 
| 
      
 1488 
     | 
    
         
            +
             
     | 
| 
      
 1489 
     | 
    
         
            +
                worksheet8.conditional_formatting('B3:B14',
         
     | 
| 
      
 1490 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1491 
     | 
    
         
            +
                                                    :type      => '2_color_scale',
         
     | 
| 
      
 1492 
     | 
    
         
            +
                                                    :min_color => "#FF0000",
         
     | 
| 
      
 1493 
     | 
    
         
            +
                                                    :max_color => "#00FF00"
         
     | 
| 
      
 1494 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1495 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1496 
     | 
    
         
            +
             
     | 
| 
      
 1497 
     | 
    
         
            +
                worksheet8.conditional_formatting('D3:D14',
         
     | 
| 
      
 1498 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1499 
     | 
    
         
            +
                                                    :type      => '3_color_scale',
         
     | 
| 
      
 1500 
     | 
    
         
            +
                                                    :min_color => "#C5D9F1",
         
     | 
| 
      
 1501 
     | 
    
         
            +
                                                    :mid_color => "#8DB4E3",
         
     | 
| 
      
 1502 
     | 
    
         
            +
                                                    :max_color => "#538ED5"
         
     | 
| 
      
 1503 
     | 
    
         
            +
                                                  }
         
     | 
| 
      
 1504 
     | 
    
         
            +
                                                  )
         
     | 
| 
      
 1505 
     | 
    
         
            +
             
     | 
| 
      
 1506 
     | 
    
         
            +
                worksheet8.conditional_formatting('F3:F14',
         
     | 
| 
      
 1507 
     | 
    
         
            +
                                                  {
         
     | 
| 
      
 1508 
     | 
    
         
            +
                                                    :type      => 'data_bar',
         
     | 
| 
      
 1509 
     | 
    
         
            +
                                                    :bar_color => '#63C384'
         
     | 
| 
       1277 
1510 
     | 
    
         
             
                                                  }
         
     | 
| 
       1278 
1511 
     | 
    
         
             
                                                  )
         
     | 
| 
       1279 
1512 
     | 
    
         | 
| 
         @@ -2889,7 +3122,7 @@ EOS 
     | 
|
| 
       2889 
3122 
     | 
    
         
             
                workbook.close
         
     | 
| 
       2890 
3123 
     | 
    
         
             
                compare_xlsx(File.join(@perl_output, @xlsx), @xlsx)
         
     | 
| 
       2891 
3124 
     | 
    
         
             
              end
         
     | 
| 
       2892 
     | 
    
         
            -
             
     | 
| 
      
 3125 
     | 
    
         
            +
             
     | 
| 
       2893 
3126 
     | 
    
         
             
              def test_outline_collapsed
         
     | 
| 
       2894 
3127 
     | 
    
         
             
                @xlsx = 'outline_collapsed.xlsx'
         
     | 
| 
       2895 
3128 
     | 
    
         
             
                workbook   = WriteXLSX.new(@xlsx)
         
     | 
| 
         @@ -3074,7 +3307,7 @@ EOS 
     | 
|
| 
       3074 
3307 
     | 
    
         
             
                worksheet.write('A12', 'Grand Total',         bold)
         
     | 
| 
       3075 
3308 
     | 
    
         
             
                worksheet.write('B12', '=SUBTOTAL(9,B2:B10)', bold)
         
     | 
| 
       3076 
3309 
     | 
    
         
             
              end
         
     | 
| 
       3077 
     | 
    
         
            -
             
     | 
| 
      
 3310 
     | 
    
         
            +
             
     | 
| 
       3078 
3311 
     | 
    
         
             
              def test_panes
         
     | 
| 
       3079 
3312 
     | 
    
         
             
                @xlsx = 'panes.xlsx'
         
     | 
| 
       3080 
3313 
     | 
    
         
             
                workbook  = WriteXLSX.new(@xlsx)
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'write_xlsx'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'stringio'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            class TestSetColumn < Test::Unit::TestCase
         
     | 
| 
      
 7 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 8 
     | 
    
         
            +
                @workbook = WriteXLSX.new(StringIO.new)
         
     | 
| 
      
 9 
     | 
    
         
            +
                @worksheet = @workbook.add_worksheet('')
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              def test_set_column_with_level_minus
         
     | 
| 
      
 13 
     | 
    
         
            +
                level = -1
         
     | 
| 
      
 14 
     | 
    
         
            +
                @worksheet.set_column('B:G', nil, nil, 0, level)
         
     | 
| 
      
 15 
     | 
    
         
            +
                result = @worksheet.instance_variable_get(:@colinfo).first[5]
         
     | 
| 
      
 16 
     | 
    
         
            +
                assert_equal(0, result)
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              def test_set_column_with_level_8
         
     | 
| 
      
 20 
     | 
    
         
            +
                level = 8
         
     | 
| 
      
 21 
     | 
    
         
            +
                @worksheet.set_column('B:G', nil, nil, 0, level)
         
     | 
| 
      
 22 
     | 
    
         
            +
                result = @worksheet.instance_variable_get(:@colinfo).first[5]
         
     | 
| 
      
 23 
     | 
    
         
            +
                assert_equal(7, result)
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWorksheet03 < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_assemble_xml_file_set_column
         
     | 
| 
       13 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 13 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1, :bold => 1)
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.select
         
     | 
| 
       15 
15 
     | 
    
         
             
                @worksheet.set_column('B:D', 5)
         
     | 
| 
       16 
16 
     | 
    
         
             
                @worksheet.set_column('F:F', 8, nil, 1)
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWorksheet04 < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_assemble_xml_file_set_row
         
     | 
| 
       13 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 13 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1, :bold => 1)
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.select
         
     | 
| 
       15 
15 
     | 
    
         
             
                @worksheet.set_row(1, 30)
         
     | 
| 
       16 
16 
     | 
    
         
             
                @worksheet.set_row(3, nil, nil, 1)
         
     | 
| 
         @@ -10,6 +10,13 @@ class TestWriteArrayFormula01 < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
                @worksheet = @workbook.add_worksheet('')
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
              def test_write_array_formula_does_not_change_formula
         
     | 
| 
      
 14 
     | 
    
         
            +
                formula = '{=TREND(C1:C3,B1:B3)}'.freeze
         
     | 
| 
      
 15 
     | 
    
         
            +
                assert_nothing_raised do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  @worksheet.write_array_formula('A1:A3', formula)
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       13 
20 
     | 
    
         
             
              def test_write_array_formula
         
     | 
| 
       14 
21 
     | 
    
         
             
                format = nil
         
     | 
| 
       15 
22 
     | 
    
         
             
                @worksheet.select
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWriteColBreaks < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_write_col_breaks_1
         
     | 
| 
       13 
     | 
    
         
            -
                @worksheet.instance_variable_get(:@ 
     | 
| 
      
 13 
     | 
    
         
            +
                @worksheet.instance_variable_get(:@page_setup).vbreaks = [1]
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.__send__('write_col_breaks')
         
     | 
| 
       15 
15 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       16 
16 
     | 
    
         
             
                expected = '<colBreaks count="1" manualBreakCount="1"><brk id="1" max="1048575" man="1"/></colBreaks>'
         
     | 
| 
         @@ -18,7 +18,7 @@ class TestWriteColBreaks < Test::Unit::TestCase 
     | 
|
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              def test_write_col_breaks_8_3_1_0
         
     | 
| 
       21 
     | 
    
         
            -
                @worksheet.instance_variable_get(:@ 
     | 
| 
      
 21 
     | 
    
         
            +
                @worksheet.instance_variable_get(:@page_setup).vbreaks = [8, 3, 1, 0]
         
     | 
| 
       22 
22 
     | 
    
         
             
                @worksheet.__send__('write_col_breaks')
         
     | 
| 
       23 
23 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       24 
24 
     | 
    
         
             
                expected = '<colBreaks count="3" manualBreakCount="3"><brk id="1" max="1048575" man="1"/><brk id="3" max="1048575" man="1"/><brk id="8" max="1048575" man="1"/></colBreaks>'
         
     | 
| 
         @@ -17,7 +17,7 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       17 
17 
     | 
    
         
             
                hidden    = 0
         
     | 
| 
       18 
18 
     | 
    
         
             
                level     = 0
         
     | 
| 
       19 
19 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       20 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 20 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       21 
21 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       22 
22 
     | 
    
         
             
                expected = '<col min="2" max="4" width="5.7109375" customWidth="1"/>'
         
     | 
| 
       23 
23 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -31,7 +31,7 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       31 
31 
     | 
    
         
             
                hidden    = true
         
     | 
| 
       32 
32 
     | 
    
         
             
                level     = 0
         
     | 
| 
       33 
33 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       34 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 34 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       35 
35 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       36 
36 
     | 
    
         
             
                expected = '<col min="6" max="6" width="8.7109375" hidden="1" customWidth="1"/>'
         
     | 
| 
       37 
37 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -41,11 +41,11 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       41 
41 
     | 
    
         
             
                min       = 7
         
     | 
| 
       42 
42 
     | 
    
         
             
                max       = 7
         
     | 
| 
       43 
43 
     | 
    
         
             
                width     = nil
         
     | 
| 
       44 
     | 
    
         
            -
                format    = Writexlsx::Format.new( 
     | 
| 
      
 44 
     | 
    
         
            +
                format    = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1)
         
     | 
| 
       45 
45 
     | 
    
         
             
                hidden    = false
         
     | 
| 
       46 
46 
     | 
    
         
             
                level     = 0
         
     | 
| 
       47 
47 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       48 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 48 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       49 
49 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       50 
50 
     | 
    
         
             
                expected = '<col min="8" max="8" width="9.140625" style="1"/>'
         
     | 
| 
       51 
51 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -55,11 +55,11 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       55 
55 
     | 
    
         
             
                min       = 8
         
     | 
| 
       56 
56 
     | 
    
         
             
                max       = 8
         
     | 
| 
       57 
57 
     | 
    
         
             
                width     = 8.43
         
     | 
| 
       58 
     | 
    
         
            -
                format    = Writexlsx::Format.new( 
     | 
| 
      
 58 
     | 
    
         
            +
                format    = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1)
         
     | 
| 
       59 
59 
     | 
    
         
             
                hidden    = false
         
     | 
| 
       60 
60 
     | 
    
         
             
                level     = 0
         
     | 
| 
       61 
61 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       62 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 62 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       63 
63 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       64 
64 
     | 
    
         
             
                expected = '<col min="9" max="9" width="9.140625" style="1"/>'
         
     | 
| 
       65 
65 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -73,7 +73,7 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       73 
73 
     | 
    
         
             
                hidden    = false
         
     | 
| 
       74 
74 
     | 
    
         
             
                level     = 0
         
     | 
| 
       75 
75 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       76 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 76 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       77 
77 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       78 
78 
     | 
    
         
             
                expected = '<col min="10" max="10" width="2.7109375" customWidth="1"/>'
         
     | 
| 
       79 
79 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -87,7 +87,7 @@ class TestWriteColInfo < Test::Unit::TestCase 
     | 
|
| 
       87 
87 
     | 
    
         
             
                hidden    = true
         
     | 
| 
       88 
88 
     | 
    
         
             
                level     = 0
         
     | 
| 
       89 
89 
     | 
    
         
             
                collapsed = 0
         
     | 
| 
       90 
     | 
    
         
            -
                @worksheet.__send__('write_col_info', min, max, width, format, hidden)
         
     | 
| 
      
 90 
     | 
    
         
            +
                @worksheet.__send__('write_col_info', [min, max, width, format, hidden])
         
     | 
| 
       91 
91 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       92 
92 
     | 
    
         
             
                expected = '<col min="12" max="12" width="0" hidden="1" customWidth="1"/>'
         
     | 
| 
       93 
93 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWriteConditionalFormatting < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_conditional_formatting_01
         
     | 
| 
       13 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 13 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new)
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                @worksheet.conditional_formatting('A1',
         
     | 
| 
       16 
16 
     | 
    
         
             
                    :type     => 'cell',
         
     | 
| 
         @@ -25,7 +25,7 @@ class TestWriteConditionalFormatting < Test::Unit::TestCase 
     | 
|
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
              def test_conditional_formatting_02
         
     | 
| 
       28 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 28 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new)
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
                @worksheet.conditional_formatting('A2',
         
     | 
| 
       31 
31 
     | 
    
         
             
                    :type     => 'cell',
         
     | 
| 
         @@ -40,7 +40,7 @@ class TestWriteConditionalFormatting < Test::Unit::TestCase 
     | 
|
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
              def test_conditional_formatting_03
         
     | 
| 
       43 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 43 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new)
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                @worksheet.conditional_formatting('A3',
         
     | 
| 
       46 
46 
     | 
    
         
             
                    :type     => 'cell',
         
     | 
| 
         @@ -55,7 +55,7 @@ class TestWriteConditionalFormatting < Test::Unit::TestCase 
     | 
|
| 
       55 
55 
     | 
    
         
             
              end
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
              def test_conditional_formatting_04
         
     | 
| 
       58 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 58 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new)
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
                @worksheet.conditional_formatting('A1',
         
     | 
| 
       61 
61 
     | 
    
         
             
                    :type     => 'cell',
         
     | 
| 
         @@ -0,0 +1,18 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'helper'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'write_xlsx'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'stringio'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            class TestWriteFormula < Test::Unit::TestCase
         
     | 
| 
      
 7 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 8 
     | 
    
         
            +
                @workbook = WriteXLSX.new(StringIO.new)
         
     | 
| 
      
 9 
     | 
    
         
            +
                @worksheet = @workbook.add_worksheet('')
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              def test_write_formula_does_not_change_formula_string
         
     | 
| 
      
 13 
     | 
    
         
            +
                formula = '=PI()'
         
     | 
| 
      
 14 
     | 
    
         
            +
                @worksheet.write('A1', formula)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                assert_equal('=PI()', formula)
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -8,19 +8,24 @@ class TestWriteHeaderFooter < Test::Unit::TestCase 
     | 
|
| 
       8 
8 
     | 
    
         
             
              def setup
         
     | 
| 
       9 
9 
     | 
    
         
             
                @workbook = WriteXLSX.new(StringIO.new)
         
     | 
| 
       10 
10 
     | 
    
         
             
                @worksheet = @workbook.add_worksheet('')
         
     | 
| 
      
 11 
     | 
    
         
            +
                @writer    = @worksheet.instance_variable_get(:@writer)
         
     | 
| 
       11 
12 
     | 
    
         
             
              end
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         
             
              def test_write_odd_header
         
     | 
| 
       14 
15 
     | 
    
         
             
                @worksheet.set_header('Page &P of &N')
         
     | 
| 
       15 
     | 
    
         
            -
                @worksheet. 
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 16 
     | 
    
         
            +
                @worksheet.
         
     | 
| 
      
 17 
     | 
    
         
            +
                  instance_variable_get(:@page_setup).
         
     | 
| 
      
 18 
     | 
    
         
            +
                  __send__('write_odd_header', @writer)
         
     | 
| 
      
 19 
     | 
    
         
            +
                result = @writer.string
         
     | 
| 
       17 
20 
     | 
    
         
             
                expected = '<oddHeader>Page &P of &N</oddHeader>'
         
     | 
| 
       18 
21 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
       19 
22 
     | 
    
         
             
              end
         
     | 
| 
       20 
23 
     | 
    
         | 
| 
       21 
24 
     | 
    
         
             
              def test_write_odd_footer
         
     | 
| 
       22 
25 
     | 
    
         
             
                @worksheet.set_footer('&F')
         
     | 
| 
       23 
     | 
    
         
            -
                @worksheet. 
     | 
| 
      
 26 
     | 
    
         
            +
                @worksheet.
         
     | 
| 
      
 27 
     | 
    
         
            +
                  instance_variable_get(:@page_setup).
         
     | 
| 
      
 28 
     | 
    
         
            +
                  __send__('write_odd_footer', @writer)
         
     | 
| 
       24 
29 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       25 
30 
     | 
    
         
             
                expected = '<oddFooter>&F</oddFooter>'
         
     | 
| 
       26 
31 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -10,28 +10,33 @@ class TestWriteHyperlink < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_write_hyperlink_external
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                hyperlink = Writexlsx::Worksheet::Hyperlink.new('')
         
     | 
| 
      
 14 
     | 
    
         
            +
                @worksheet.__send__('write_hyperlink_external', hyperlink, 0, 0, 1)
         
     | 
| 
       14 
15 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       15 
16 
     | 
    
         
             
                expected = '<hyperlink ref="A1" r:id="rId1"/>'
         
     | 
| 
       16 
17 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
       17 
18 
     | 
    
         
             
              end
         
     | 
| 
       18 
19 
     | 
    
         | 
| 
       19 
20 
     | 
    
         
             
              def test_write_hyperlink_internal_sheet2
         
     | 
| 
       20 
     | 
    
         
            -
                 
     | 
| 
      
 21 
     | 
    
         
            +
                hyperlink = Writexlsx::Worksheet::Hyperlink.new('internal:Sheet2!A1', 'Sheet2!A1')
         
     | 
| 
      
 22 
     | 
    
         
            +
                @worksheet.__send__('write_hyperlink_internal', hyperlink, 0, 0)
         
     | 
| 
       21 
23 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       22 
24 
     | 
    
         
             
                expected = '<hyperlink ref="A1" location="Sheet2!A1" display="Sheet2!A1"/>'
         
     | 
| 
       23 
25 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
       24 
26 
     | 
    
         
             
              end
         
     | 
| 
       25 
27 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              def  
     | 
| 
       27 
     | 
    
         
            -
                 
     | 
| 
      
 28 
     | 
    
         
            +
              def test_write_hyperlink_internal_quoted_sheet
         
     | 
| 
      
 29 
     | 
    
         
            +
                hyperlink = Writexlsx::Worksheet::Hyperlink.new("internal:'Data Sheet'!D5", "'Data Sheet'!D5")
         
     | 
| 
      
 30 
     | 
    
         
            +
                @worksheet.__send__('write_hyperlink_internal', hyperlink, 4, 0)
         
     | 
| 
       28 
31 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       29 
32 
     | 
    
         
             
                expected = %q{<hyperlink ref="A5" location="'Data Sheet'!D5" display="'Data Sheet'!D5"/>}
         
     | 
| 
       30 
33 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
       31 
34 
     | 
    
         
             
              end
         
     | 
| 
       32 
35 
     | 
    
         | 
| 
       33 
36 
     | 
    
         
             
              def test_write_hyperlink_internal_tooltip
         
     | 
| 
       34 
     | 
    
         
            -
                 
     | 
| 
      
 37 
     | 
    
         
            +
                hyperlink = Writexlsx::Worksheet::Hyperlink.new('internal:Sheet2!A1', 'Sheet2!A1')
         
     | 
| 
      
 38 
     | 
    
         
            +
                hyperlink.tip = 'Screen Tip 1'
         
     | 
| 
      
 39 
     | 
    
         
            +
                @worksheet.__send__('write_hyperlink_internal', hyperlink, 17, 0)
         
     | 
| 
       35 
40 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       36 
41 
     | 
    
         
             
                expected = '<hyperlink ref="A18" location="Sheet2!A1" tooltip="Screen Tip 1" display="Sheet2!A1"/>'
         
     | 
| 
       37 
42 
     | 
    
         
             
                assert_equal(expected, result)
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWriteMergeCells < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_write_merge_cells_B3_C3_Foo_format
         
     | 
| 
       13 
     | 
    
         
            -
                format = Writexlsx::Format.new( 
     | 
| 
      
 13 
     | 
    
         
            +
                format = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1)
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.select
         
     | 
| 
       15 
15 
     | 
    
         
             
                @worksheet.merge_range('B3:C3', 'Foo', format)
         
     | 
| 
       16 
16 
     | 
    
         
             
                @worksheet.__send__('assemble_xml_file')
         
     | 
| 
         @@ -42,8 +42,8 @@ EOS 
     | 
|
| 
       42 
42 
     | 
    
         
             
              end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
              def test_write_merge_cells_two_range
         
     | 
| 
       45 
     | 
    
         
            -
                format1 = Writexlsx::Format.new( 
     | 
| 
       46 
     | 
    
         
            -
                format2 = Writexlsx::Format.new( 
     | 
| 
      
 45 
     | 
    
         
            +
                format1 = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1)
         
     | 
| 
      
 46 
     | 
    
         
            +
                format2 = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 2)
         
     | 
| 
       47 
47 
     | 
    
         
             
                @worksheet.select
         
     | 
| 
       48 
48 
     | 
    
         
             
                @worksheet.merge_range('B3:C3', 'Foo', format1)
         
     | 
| 
       49 
49 
     | 
    
         
             
                @worksheet.merge_range('A2:D2', nil,   format2)
         
     | 
| 
         @@ -83,9 +83,9 @@ EOS 
     | 
|
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
              def test_write_merge_range_type
         
     | 
| 
       86 
     | 
    
         
            -
                format1 = Writexlsx::Format.new( 
     | 
| 
       87 
     | 
    
         
            -
                format2 = Writexlsx::Format.new( 
     | 
| 
       88 
     | 
    
         
            -
                format3 = Writexlsx::Format.new( 
     | 
| 
      
 86 
     | 
    
         
            +
                format1 = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 1)
         
     | 
| 
      
 87 
     | 
    
         
            +
                format2 = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 2)
         
     | 
| 
      
 88 
     | 
    
         
            +
                format3 = Writexlsx::Format.new(Writexlsx::Formats.new, :xf_index => 3)
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
                @worksheet.set_column('B:C', 12)
         
     | 
| 
       91 
91 
     | 
    
         
             
                @worksheet.instance_variable_set(:@date_1904, 0)
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWritePageSetUpPr < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_write_page_set_up_pr
         
     | 
| 
       13 
     | 
    
         
            -
                @worksheet.instance_variable_get(:@ 
     | 
| 
      
 13 
     | 
    
         
            +
                @worksheet.instance_variable_get(:@page_setup).fit_page = true
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.__send__('write_page_set_up_pr')
         
     | 
| 
       15 
15 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       16 
16 
     | 
    
         
             
                expected = '<pageSetUpPr fitToPage="1"/>'
         
     | 
| 
         @@ -13,7 +13,7 @@ class TestWorksheetWritePageSetup < Test::Unit::TestCase 
     | 
|
| 
       13 
13 
     | 
    
         
             
                assert @worksheet
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              def  
     | 
| 
      
 16 
     | 
    
         
            +
              def test_write_page_setup2
         
     | 
| 
       17 
17 
     | 
    
         
             
                @worksheet.__send__('write_page_setup')
         
     | 
| 
       18 
18 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       19 
19 
     | 
    
         
             
                expected = ''
         
     | 
| 
         @@ -10,7 +10,7 @@ class TestWriteRowBreaks < Test::Unit::TestCase 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              def test_write_row_breaks_1
         
     | 
| 
       13 
     | 
    
         
            -
                @worksheet.instance_variable_get(:@ 
     | 
| 
      
 13 
     | 
    
         
            +
                @worksheet.instance_variable_get(:@page_setup).hbreaks = [1]
         
     | 
| 
       14 
14 
     | 
    
         
             
                @worksheet.__send__('write_row_breaks')
         
     | 
| 
       15 
15 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       16 
16 
     | 
    
         
             
                expected = '<rowBreaks count="1" manualBreakCount="1"><brk id="1" max="16383" man="1"/></rowBreaks>'
         
     | 
| 
         @@ -18,7 +18,7 @@ class TestWriteRowBreaks < Test::Unit::TestCase 
     | 
|
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              def test_write_row_breaks_15_7_3_0
         
     | 
| 
       21 
     | 
    
         
            -
                @worksheet.instance_variable_get(:@ 
     | 
| 
      
 21 
     | 
    
         
            +
                @worksheet.instance_variable_get(:@page_setup).hbreaks = [15, 7, 3, 0]
         
     | 
| 
       22 
22 
     | 
    
         
             
                @worksheet.__send__('write_row_breaks')
         
     | 
| 
       23 
23 
     | 
    
         
             
                result = @worksheet.instance_variable_get(:@writer).string
         
     | 
| 
       24 
24 
     | 
    
         
             
                expected = '<rowBreaks count="3" manualBreakCount="3"><brk id="3" max="16383" man="1"/><brk id="7" max="16383" man="1"/><brk id="15" max="16383" man="1"/></rowBreaks>'
         
     |