繁体   English   中英

如何从Excel C#获取带有单元格地址的列值

[英]How to get Column Values with cell Address From Excel c#

我可以使用以下代码从excel中读取一列。 该代码将值读取到System.Array中。 为了使用该Sytem.Array对象数据,我将其转换为列表类型。但是,对于从excel读取的每个单元格...我需要其地址(更具体地说,行号)。 我怎样才能做到这一点?

string sFilePath = "C:\\Mydata.xls";            
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(sFilePath);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("PID");
xlApp.Visible = true;

Excel.Range MyColumn = oExcelSheet.UsedRange.Columns[7];
System.Array myvalues = (System.Array)MyColumn.Cells.Value;
List<string> strArray = myvalues.OfType<string>().Select(o => o.ToString()).ToList();

我不知道这是否有帮助,但是在调试模式下检查时... System.Array(即myvalues)具有单元格值,其索引与该单元格的行号完全匹配,这正是我所需要的。

如果有人想知道答案...下面的代码行实际上会跳过空值并失去实际的索引

List<string> strArray = myvalues.OfType<string>().Select(o => o.ToString()).ToList();

因此,我没有使用上面的代码...我试图通过添加'if null'检查并将项目添加到列表中来显式循环遍历数组值并保留每个项目的索引

range = xlWorkSheet.UsedRange;
int rowCount = range.Rows.Count;

List<string> strArray = new List<string>();
for (int i = 1; i < rowCount; i++)
{
    if (myvalues.GetValue(i, 1) == null)
        strArray.Add(" ");   
    else  
       strArray.Add(myvalues.GetValue(i, 1).ToString());  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM