Открыть XML получить ячейки по индексу столбца C # - PullRequest
0 голосов
/ 22 октября 2018

Я нашел индекс столбцов, которые я хочу поместить в строку для добавления в сетку данных.Я не уверен, как использовать значение индекса в Open XML, чтобы найти нужные ячейки.

        bool headerIndexComplete = false;
        int a1141Index = -1;
        int NacIndex = -1;

        string fileName = "FilePathHere";

        using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
        {
            using (SpreadsheetDocument doc = SpreadsheetDocument.Open(fs, false))
            {
                WorkbookPart workbookPart = doc.WorkbookPart;
                SharedStringTablePart sstpart = workbookPart.GetPartsOfType<SharedStringTablePart>().First();
                SharedStringTable sst = sstpart.SharedStringTable;

                WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
                Worksheet sheet = worksheetPart.Worksheet;

                //var cells = sheet.Descendants<Cell>();
                var rows = sheet.Descendants<Row>();

                foreach (Row row in rows)
                {
                    int ColumnIndex = 0;

                    foreach (Cell Cell in row.Elements<Cell>())
                    {
                        int ssid = int.Parse(Cell.CellValue.Text);
                        string CellText = sst.ChildElements[ssid].InnerText;

                        if (!headerIndexComplete)
                        {
                            if (CellText == "1141")
                                a1141Index = ColumnIndex;

                            if (CellText == "CHARGE GROUP (NAC'S)")
                                NacIndex = ColumnIndex;

                            ColumnIndex++;
                        }                         
                    }         
                }
            }
        }
    }
...