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

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

我正在尝试将模型中列表中的值填充到 Excel 文件中的一系列单元格中。我的学生 ID 列表中的值是 = 11、22、33、44,我希望它们分别位于单元格 C8 到 C11 上。

我尝试将它们分配为单元格范围 ["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);
            }
        }

但我在所有单元格中得到的只是值“44”。

在您的 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; 
 }        
}

或者只使用for循环

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; 
  }        
 }