title: Unable to create a excel using Apache POI SXSSFWorkbook class with shiftrows
body: <p>I am trying to create a excel work book using Apache POI SXSSFWorkbook class. But it is unable to me run the file if I use <code>shiftrows</code> method as given in the sample code below.</p>
  
  <pre><code>package com.howtodoinjava.demo.poi;
  
  import java.io.File;
  import java.io.FileOutputStream;
  import java.util.LinkedHashMap;
  import java.util.Map;
  import java.util.Set;
  import java.util.TreeMap;
  import org.apache.poi.ss.usermodel.Cell;
  import org.apache.poi.ss.usermodel.Row;
  import org.apache.poi.ss.usermodel.Sheet;
  import org.apache.poi.ss.usermodel.Workbook;
  import org.apache.poi.ss.util.CellRangeAddress;
  import org.apache.poi.ss.util.CellReference;
  import org.apache.poi.xssf.streaming.SXSSFWorkbook;
  import org.apache.poi.ss.usermodel.FormulaEvaluator;
  
  public class sample {
  
      public static void main(String[] args) {
          //Blank workbook
          SXSSFWorkbook workbook = new SXSSFWorkbook();
  
          //Create a blank sheet
          Sheet sheet = workbook.createSheet("Employee Data");
  
          //This data needs to be written (Object[])
          LinkedHashMap&lt;String, Object[]&gt; data = new LinkedHashMap&lt;String, Object[]&gt;();
          data.put("1", new Object[]{"NAME", "LASTNAME", "Count"});
          data.put("2", new Object[]{"Amit", "Shukla", 1});
          data.put("13", new Object[]{"Ram", "Krish", 2});
  
          //Iterate over data and write to sheet
          Set&lt;String&gt; keyset = data.keySet();
          int rownum = 0;
          for (String key : keyset) {
              Row row = sheet.createRow(rownum++);
              Object[] objArr = data.get(key);
              int cellnum = 0;
              for (Object obj : objArr) {
                  Cell cell = row.createCell(cellnum++);
                  if (obj instanceof String) {
                      cell.setCellValue((String) obj);
                  } else if (obj instanceof Integer) {
                      cell.setCellValue((Integer) obj);
                  }
              }
          }
          try {
  
               sheet.shiftRows(1, sheet.getLastRowNum(), 1, false, false);
                        Row insRow = sheet.createRow(1);
                         for (int k = 0; k &lt; sheet.getRow(1).getLastCellNum(); k++) {
                              Cell insCell = insRow.createCell(k);
                              if (k == 0) {
                                  insCell.setCellValue("Govind");
                              } else if (k == 1) {
                                  insCell.setCellValue("Narayan");
                              } else {
                                  insCell.setCellType(Cell.CELL_TYPE_NUMERIC);
                                  insCell.setCellFormula("7");
                              }
                          }
  
              //Write the workbook in file system
              FileOutputStream out = new FileOutputStream(new File("excelSample.xlsx"));
              workbook.write(out);
              out.close();
  
              System.out.println("excelSample.xlsx written successfully on disk.");
  
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  
      private static String getColumnName(int i) {
          throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
      }
  }
  </code></pre>
  
  <p>But it throws <code>java.lang.RuntimeException: NotImplemented
      at org.apache.poi.xssf.streaming.SXSSFSheet.shiftRows(SXSSFSheet.java:827)
      at com.howtodoinjava.demo.poi.sample.main(sample.java:50)</code> error message. What is the work around?</p>