如何读取基于C#中每行的列的开放XML SDK的xslx?

我正在尝试使用打开的xml sdk读取一些.xslx文件,但是我真的很难find任何好的例子。

我想要做的是读取整个XSLX文件,并遍历所有的行,并从我指定的列中提取cellvalue / celltext。

如下所示:

GetCellText(rowId, ColumnLetter) 

这可能吗?

你的问题与这个相似

1) 打开xml excel读取单元格的值

您可以通过ID获取该行,然后按列名称查找该值。

希望有所帮助

助手:

 private static string GetColumnName(string cellReference) { if (ColumnNameRegex.IsMatch(cellReference)) return ColumnNameRegex.Match(cellReference).Value; throw new ArgumentOutOfRangeException(cellReference); } private static readonly Regex ColumnNameRegex = new Regex("[A-Za-z]+"); 

码:

 using (var document = SpreadsheetDocument.Open(stream, true)) { var sheets = document.WorkbookPart.Workbook.Descendants<Sheet>(); foreach (Sheet sheet in sheets) { WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(sheet.Id); Worksheet worksheet = worksheetPart.Worksheet; var rows = worksheet.GetFirstChild<SheetData>().Elements<Row>(); foreach (var row in rows) { var cells = row.Elements<Cell>(); foreach (var cell in cells) { if(GetColumnName(cell.CellReference) == "A") { var str = cell.CellValue.Text; // do whatewer you want } } } } }