Экспорт из xml в xlsx - C#

Узнай цену своей работы

Формулировка задачи:

Проблема в том, что при добавлении тега <ActualData> на 4 уровень данные в xlsx файл не выгржуаются. XML файл:
<ActualData>
    <Programs>
        <Program>
            <BeginYear>2014</BeginYear>
            <Code>15</Code>>
            <Name>Показатель</Name>
        </Program>
    </Programs>
</ActualData>
при выгрузке в xlsx файл просто записывается "Programs_Id 0". Если убрать тег с четвертого уровня то данные выгружаются полностью. Есть предположения из за чего это проиходит? Заранее спасибо.

Решение задачи: «Экспорт из xml в xlsx»

textual
Листинг программы
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Data;
//...
private static void Converts()
        {
            DataSet ds = new DataSet();
 
            //Convert the XML into Dataset
            ds.ReadXml("C:\\dir\\ex2.xml");
 
            DataTable dt = new DataTable();
 
            //Retrieve the table fron Dataset
            dt = ds.Tables[0];
 
            // Create an Excel object
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
 
            //Create workbook object
            string str = "C:\\dir\\test3.xlsx";
            Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(Filename: str);
            //excel.
            //Create worksheet object
 
            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.ActiveSheet;
            //worksheet= workbook.Worksheets.get_Item(3);
 
            // Column Headings
            int iColumn = 0;
 
            foreach (DataColumn c in dt.Columns)
            {
                iColumn++;
                excel.Cells[1, iColumn] = c.ColumnName;
            }
 
            // Row Data
            int iRow = worksheet.UsedRange.Rows.Count - 1;
 
            foreach (DataRow dr in dt.Rows)
            {
                iRow++;
 
                // Row's Cell Data
                iColumn = 0;
                foreach (DataColumn c in dt.Columns)
                {
                    iColumn++;
                    excel.Cells[iRow + 1, iColumn] = dr[c.ColumnName];
                }
            }
 
            ((Microsoft.Office.Interop.Excel._Worksheet)worksheet).Activate();
 
            //Save the workbook
            workbook.Save();
 
            //Close the Workbook
            workbook.Close();
            Console.Out.WriteLine("close");
            // Finally Quit the Application
            ((Microsoft.Office.Interop.Excel._Application)excel).Quit();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5