首页 > 解决方案 > 如何使用 Excel.Interop 将列表中的值填充到 Excel 中的一系列单元格?

问题描述

我正在尝试将模型中的列表中的值填充到 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”。

标签: c#excelrangeautofillworksheet

解决方案


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

推荐阅读