code: public void write(String... columns) throws DataUtilException {
          if(columns.length != tableColumns) {
              throw new DataUtilException("Invalid column count. Expected " + tableColumns + " but found: "
                      + columns.length);
          }
          try {
              if(currentRow == 0) {
                  // capture header row
                  this.headerRowColumns = columns;
                  writeTop();
                  writeRow(headerRowColumns);
              } else if(maxRowsPerPage > 1 && currentRow % maxRowsPerPage == 0) {
                  writeBottom(true);
                  currentPageNumber = (currentRow/maxRowsPerPage) + 1;
                  writeTop();
                  writeRow(headerRowColumns);
                  currentRow += 1;
                  writeRow(columns);
              } else {
                  writeRow(columns);
              }
              currentRow += 1;
          } catch (Exception e) {
              throw new DataUtilException(e);
          }
      }
docs: Write a row to the table. The first row will be the header row
  @param columns columns
  @throws DataUtilException exception