## How it extracts CSV data from a sheet

ConvertExcelToCSVProcessor extracts CSV data with following rules:

- Find the fist cell which has a value in it (the FirstCell).
- Scan cells in the first row, starting from the FirstCell, until it reaches to a cell after which no cell with a value can not be found in the row (the FirstRowLastCell).
- Process the 2nd row and later, from the column of FirstCell to the column of FirstRowLastCell.
- If a row does not have any cell that has a value, then the row is ignored.

As an example, the sheet shown below will be:

row | A | B | C | D | E | F | G
--- | --- | --- | --- | --- | --- | --- | ---
1 |  |  |  |  |  |  |
2 |  |  | x | y | z |  |
3 |  |  | 1 |  |  |  |
4 | 2 |  |  | 3 |  |  |
5 |  |  |  |  | 4 |  |
6 |  |  | 5 | 6 | 7 |  |
7 |  |  |  |  |  | 8 |
8 |  |  |  |  |  |  |
9 |  |  |  |  | 9 |  |
10 |  |  |  |  |  |  |
11 |  |  |  |  |  |  |

converted to following CSV:

    x,y,z
    1,,
    ,3,
    ,,4
    5,6,7
    ,,9

- C2(x) is the FirstCell, and E2(z) is the FirstRowLastCell.
- A4(2) is ignored because it is out of range. So is F7(8).
- Row 7 and 8 are ignored because those do not have a valid cell.
- It is important to have a header row as shown in the example to define data area, especially when a sheet includes empty cells.