如何读取基于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 } } } } }