title: Reading Excel files using OpenXML
body: <p>I am trying to read Excel files via OpenXML and looking to output into a CSV. Currently it reads each cell in a separate line (due to writeline) or a single line (when using write). What is the best way to read and outputing in a tabular format like in Excel? Is there a built in feature in OpenXML which I can leverage for this?</p>
  <blockquote>
  <pre><code>static void Main(string[] args)
  {
          String xlDocName = @&quot;C:\Users\xlp111\source.xlsx&quot;;
  
          using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(xlDocName, false))
          {
              WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
              string cellValue = string.Empty;
              foreach(WorksheetPart worksheetPart in workbookPart.WorksheetParts)
              {
                  OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);
  
                  while (reader.Read())
                  {
                  if (reader.ElementType == typeof(Row))
                  {
                      reader.ReadFirstChild();
  
                      do
                      {
                      if (reader.ElementType == typeof(Cell))
                      {
                          Cell c = (Cell)reader.LoadCurrentElement();
  
                          if (c.DataType != null &amp;&amp; c.DataType == CellValues.SharedString)
                          {
                          SharedStringItem ssi = workbookPart.SharedStringTablePart.SharedStringTable.Elements&lt;SharedStringItem&gt;().ElementAt(int.Parse(c.CellValue.InnerText));
                          cellValue = ssi.Text.Text;
                          Console.WriteLine(cellValue);
                          }
                      }
                      }                      
                      while (reader.ReadNextSibling());
                  }
                  }
              }
              Console.ReadLine();
          }
      }
  }
  </code></pre>
  </blockquote>