通过列索引C#打开XML获取单元格

时间:2018-10-22 13:38:52

标签: c# openxml openxml-sdk

我找到了要添加到数据网格中的字符串的列索引。我不确定如何在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++;
                        }                         
                    }         
                }
            }
        }
    }

0 个答案:

没有答案