title: How to export CSV file with more than 1,048,576 rows of data via powershell
body: <p>As you know Excel has got 1048574 rows. How can I export more than one million rows below my code ? if max rows is reached then how can I continue over new worksheet in Loop ? how to adapted it? 
  I'm googling some after I find nice <a href="https://github.com/RamblingCookieMonster/PSExcel" rel="nofollow">powershell functions</a> it. </p>
  
  <pre><code>[Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\NPOI.dll")
  [Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\NPOI.OOXML.dll")
  [Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\NPOI.OpenXml4Net.dll")
  [Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\NPOI.OpenXml4Net.dll")
  [Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\NPOI.OpenXmlFormats.dll")
  [Reflection.Assembly]::LoadFrom("C:\DRIVERS\NPOI 2.2.1 binary package\Release\Net40\ICSharpCode.SharpZipLib.dll")
  
  $wb = New-Object NPOI.XSSF.UserModel.XSSFWorkbook;
  $ws = $wb.CreateSheet("Company_NTFS_Permissions");
  $wr = $ws.CreateRow(0);
  
  
  
  $wr.createCell(0).setCellValue("Folder Path");
  $wr.createCell(1).setCellValue("Users/Groups");
  $wr.createCell(2).setCellValue("Permissions");
  $wr.createCell(3).setCellValue("AccessControlType");
  $wr.createCell(4).setCellValue("Permissions Inherited")
  
  
  
  $dirToAudit = Get-ChildItem -Path "C:\inetpub" -recurse | Where { $_.psIsContainer -eq $true }
  
  $intRow = 1
  
  foreach ($dir in $dirToAudit)
  {
      $colACL = Get-Acl -Path $dir.FullName
  
      foreach ($acl in $colACL)
      {
          $fileNameRow = $ws.CreateRow($intRow)
          $fileNameRow.CreateCell(0).SetCellValue($dir.FullName)
          $intRow++
  
          foreach ($accessRight in $acl.Access)
          {
              $values = $ws.CreateRow($intRow)
              $values.CreateCell(1).SetCellValue($($AccessRight.IdentityReference).ToString())
              $values.CreateCell(2).SetCellValue($($AccessRight.FileSystemRights).ToString())
              $values.CreateCell(3).SetCellValue($($AccessRight.AccessControlType).ToString())
              $values.CreateCell(4).SetCellValue($($acl.AreAccessRulesProtected).ToString())
              $intRow++
  
          }
      }
  
  }
  $fs = new-object System.IO.FileStream("C:\DRIVERS\test.xlsx",[System.IO.FileMode]'Create',[System.IO.FileAccess]'Write')
  $wb.Write($fs);
  $fs.Close()
  </code></pre>