Witam.
Mam plik XML w poniższym formacie, który otrzymuję od sprzedawcy.
Jak widać dokument ma nagłówek i pozycje.
W przypadku importu manualnego pliku do excela - importują mi się wszystkie pozycje uzupełnione w pierwszych kilku kolumnach o dane nagłówkowe (oczywiście powtórzone dla każdej pozycji). za pomocą poniższego kodu:

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                XmlReader xmlFile ;
                xmlFile = XmlReader.Create("faktura.xml", new XmlReaderSettings());
                DataSet ds = new DataSet();
                ds.ReadXml(xmlFile);
                dataGridView1.DataSource = ds.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show (ex.ToString());
            } 
        }

W przypadku użycia zapisu do excela - z poziomu C# jest analogicznie - tylko jeden rekord z nagłówka.
Kod, którego użyłem:

private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp ;
            Excel.Workbook xlWorkBook ;
            Excel.Worksheet xlWorkSheet ;
            object misValue = System.Reflection.Missing.Value;

            DataSet ds = new DataSet();
            XmlReader xmlFile ;
            int i = 0;
            int j = 0;

            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Add(misValue);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
 
            xmlFile = XmlReader.Create("faktura.xml", new XmlReaderSettings());
            ds.ReadXml(xmlFile);

            for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
                {
                    xlWorkSheet.Cells[i + 1, j + 1] = ds.Tables[0].Rows[i].ItemArray[j].ToString ();
                }
            }

            xlWorkBook.SaveAs("d:\\xml2excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlApp);
            releaseObject(xlWorkBook);
            releaseObject(xlWorkSheet);

            MessageBox.Show("Done .. ");
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
            }
            finally
            {
                GC.Collect();
            }
        } 

W jaki sposob mogę odczytać plik tak aby wynikowo w excelu znalazly sie wszystkie informacje (pozycje) wraz z informacja o fakturze, sprzedawcy itp.
Dziekuję

**
PLIK XML:**

<DocumentElement>
  <nag>
    <sprzedawca_naz>Jakas firma</sprzedawca_naz>
    <sprzedawca_nip>123-456-78-90</sprzedawca_nip>
    <sprzedawca_adr>Jakis adres</sprzedawca_adr>
   </nag>
  <poz>
    <lp>1</lp>
    <tow_kod>9D7F915</tow_kod>
    <indeks>D4-468</indeks>
    <nazwa>nazwa czesci pierwszej</nazwa>
    <ilosc>2</ilosc>
    <cena>21.83</cena>
    <cenadet>35.18</cenadet>
    <vat>23</vat>
    <sww>
    </sww>
    <nr_wz>001319017/G/2017/WZ</nr_wz>
  </poz>
  <poz>
    <lp>2</lp>
    <tow_kod>A63A8673</tow_kod>
    <indeks>BHN31-7</indeks>
    <nazwa>nazwa czesci drugiej</nazwa>
    <ilosc>1</ilosc>
    <cena>250.21</cena>
    <cenadet>384.94</cenadet>
    <vat>23</vat>
    <sww>
    </sww>
    <nr_wz>13222976/J/2017/WZ</nr_wz>
  </poz>
</DocumentElement>