簡體   English   中英

如何使用 OpenXML C# 解析 Excel 表格中的數字

[英]How to parse numbers from excel sheet using OpenXML C#

我的主要目標是解析電子表格中的電子郵件。 我需要的是檢測單元格是否包含電子郵件以外的任何內容(錯誤格式、布爾值、數字...)以將此單元格添加到數組中(假設無效)

我做了什么:

using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false))
        {
            WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
            WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
            Cell cell = new Cell();
            OpenXmlReader reader = OpenXmlReader.Create(worksheetPart);

            Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == sheetName).FirstOrDefault();

            worksheetPart = (WorksheetPart)(workbookPart.GetPartById(sheet.Id));

            while (reader.Read())
            {
                if (reader.ElementType == typeof(CellValue))
                {
                    cell = worksheetPart.Worksheet.Descendants<Cell>().Where(c => c.CellReference == String.Format("A{0}", reader.GetText())).FirstOrDefault();

                    if (cell != null && cell.InnerText.Length > 0)
                    {
                        var value = cell.InnerText;

                        if (cell.DataType != null)
                        {
                            var stringTable = workbookPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault();

                            if (cell.DataType.Value == CellValues.SharedString)
                            {
                                value = stringTable.SharedStringTable.ElementAt(int.Parse(value)).InnerText;
                                values.Add(value);
                            }
                            else
                            {
                                // add the invalid to the array
                            }
                        }
                    }
                }
            }
            spreadsheetDocument.Close();
        }

忘記電子郵件驗證,我的問題是我想提取非字符串值。 我已經嘗試了很多東西,但是代碼沒有到達它假設在電子表格中有布爾值和數字時提取數字的其他地方。 問題出在哪兒? 如何提取那些非字符串值?

我使用了 EPPLUS Core,它是 OpenXML 的一個很好的包裝器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM