【问题标题】:How to read cell value from excel file using ClosedXML如何使用 ClosedXML 从 excel 文件中读取单元格值
【发布时间】:2018-08-10 16:31:31
【问题描述】:
        string TablePath = Storage.ProjectPath + "\\Tables\\";
        string ObjectRepPath = TablePath + "ObjectRepository.xlsx";

        string locType = " ";
        string locParm = " ";

        var workbook  = new XLWorkbook(ObjectRepPath);
        var ws1       = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);
        var totalRows = ws1.Count();
        var row       = ws1.Row;

        for (int rCnt = 1; rCnt <= totalRows; rCnt++)
        {
            var objPage    = ws1.Cell(rCnt, 0).Value;
            var objElement = ws1.Cell(rCnt, 1).Value;


            if (objPage == page && objElement == element)
            {
                locType = ws1.Cell(rCnt, 2);
                locParm = ws1.Cell(rCnt, 3);
            }
        }

我正在尝试使用 ClosedXML 从 Excel 文件中读取数据。我发现的每个参考资料都说您可以使用 Worksheet.Cell(r,c),但它不包含 .Cell 的定义。 .Row 也没有。我已经尝试为 ClosedXML 下的所有内容包含“使用”语句,但这也不起作用。我错过了什么?

错误给定...“IEnumerable[IXLRangeRow]”不包含“Cell”的定义,并且找不到接受“IEnumerable[IXLRangeRow]”类型的第一个参数的扩展方法“Cell”(您是否缺少使用指令还是程序集引用?)

ws1.Cell 和 ws1.Row 都出错

支持这一点的参考应该可以工作...... - Reading from Excel File using ClosedXML - https://github.com/closedxml/closedxml/wiki/Cell-Values

【问题讨论】:

  • 您是否遇到特定(编译器)错误?如果是这样,请在问题中提供。如果不是,请更具体地描述您的问题,因为目前还不清楚。谢谢!
  • ws1IXLRangeRow 的序列,它没有 Row 属性。同样,序列中的各个行将具有Cell,但序列中没有。
  • 好的,你是说这是因为我在定义我的工作表时指定了 .RangeUsed().RowsUsed 吗?在它显示的参考文献中...... var ws = workbook.Worksheets.Add("Cell Values"); var cellString = ws.Cell(6, 2);
  • @HeadlyvonNoggin 在参考示例中ws 是工作表,您的ws1 不是工作表。我不太了解 API,但您获得的是 IEnumerable[IXLRangeRow]
  • @Crowcoder 好的。我认为这为我提供了足够的信息来完善我对该主题的研究。谢谢

标签: c# excel closedxml


【解决方案1】:

好的,找到了解决方案。感谢@Crowcoder 的指导...

        var workbook = new XLWorkbook(ObjectRepPath);
        var rows     = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);

        foreach (var row in rows)
        {
            var rowNumber  = row.RowNumber();

                objPage    = row.Cell(1).GetString();
                objElement = row.Cell(2).GetString();

            if (objPage == page && objElement == element)
            {
                locType = row.Cell(3).GetString();
                locParm = row.Cell(4).GetString();
            }
        }

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多