简体   繁体   English

如何使用Excel.Interop将列表中的值填充到Excel中的一系列单元格?

[英]How to populate values from a list to a range of cells in an Excel using Excel.Interop?

I'm trying to populate values from a List in my model to a range of cells in an Excel file. 我正在尝试将模型中的列表中的值填充到Excel文件中的一系列单元格中。 The values in my student id List are = 11, 22, 33, 44 and i want them to be on Cell C8 to C11, respectively. 我的学生证列表中的值分别为= 11、22、33、44,我希望它们分别位于单元格C8至C11中。

I tried to assign them as values for cell range ["C8:C11"] and AutoFill them. 我试图将它们分配为单元格范围[“ C8:C11”]的值,然后自动填充它们。

private void IdFiller(IdGroupModel id, Worksheet sheet)

            foreach (var studentId in id.idList)
            {
                sheet.Range["B8"].Value = 1;
                sheet.Range["B8"].AutoFill(sheet.Range["B8:B19"], XlAutoFillType.xlFillSeries);

                sheet.Range["C8"].Value2 = studentId.name;
                //sheet.Range["C8"].AutoFill(sheet.Range["C8","C19"], XlAutoFillType.xlFillValues);

                sheet.Range["D8"].Value = studentId.age;
                sheet.Range["D8"].AutoFill(sheet.Range["D8:D19"], XlAutoFillType.xlFillValues);
            }
        }

But all i got in all of the cells is the value "44". 但是我在所有单元格中得到的都是值“ 44”。

In your ForEach try add an Index counter. 在您的ForEach中,尝试添加一个索引计数器。

private void IdFiller(IdGroupModel id, Worksheet sheet)  { 
int i =7;
 foreach (var studentId in id.idList)            
 {                
  i+=1;
  sheet.Range["B" + i.ToString()].Value = 1;                
  sheet.Range["C" + i.ToString()].Value2 = studentId.name;  
  sheet.Range["D" + i.ToString()].Value = studentId.age; 
 }        
}

Or just use for loop 或仅用于循环

private void IdFiller(IdGroupModel id, Worksheet sheet)  {

  for (int i = 1; i < id.idList.Length(); i++)            
  {                
   sheet.Range["B" + i.ToString()].Value = 1;                
   sheet.Range["C" + i.ToString()].Value2 = id.idList[i-1].name;  
   sheet.Range["D" + i.ToString()].Value = id.idList[i-1].age; 
  }        
 }

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

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