如何使用C#将对象添加为Excel行

例如我有一个class级 – 会员,看起来像

class Member { public string Id { get; set; } public string Login { get; set; } public string AddDate { get; set; } public string FirstName{ get; set; } public string LastName{ get; set; } public string FullName { get; set; } } 

现在我需要将成员的对象作为一行插入Excel工作表中。 我正在使用Microsoft.Office.Interop并通过使用下面的代码有一个WorkSheet对象:

 Excel.Application xlApp = new Excel.Application(); xlApp.Visible = true; Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Excel.Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets[1]; 

我的最终输出应该看起来像 在这里输入图像说明

那么你已经声明了你的Excel.Worksheet ,现在你只需要遍历存储在某个地方的Member类,并将它们的每个属性写入工作表。

假设您将所有Member类存储在List<Member> membersList<string> headers中的所有标题值中:

 //Setting up headers int column = 1; foreach (var item in members) xlWorksheet.Cells[1, column++].Value = item; //setting up member values int row = 2; foreach (var item in members) { column = 1; xlWorksheet.Cells[row, column++].Value = item.Id; xlWorksheet.Cells[row, column++].Value = item.Login; xlWorksheet.Cells[row, column++].Value = item.AddDate; xlWorksheet.Cells[row, column++].Value = item.FirstName; xlWorksheet.Cells[row, column++].Value = item.LastName; xlWorksheet.Cells[row++, column].Value = item.FullName; } 

请注意,如果您处理需要插入到工作表中的疯狂的大量数据,这可能不是最佳解决scheme。 在这种情况下,您可以禁用excel的screenupdating( xlApp.ScreenUpdating = false; ),但是,请注意,您应该在插入完成后将其恢复为true 。 我认为在你的情况下,我的代码的简单性将工作得很好,但如果你绝对必须优化它,那么你也可以直接使用Excel.Range Value2插入一个Member数组。 像这样的东西:

 const int rowCount = 1, columnCount = 6; object[,] membersArray = new object[rowCount, columnCount]; //fill up membersArray with your data here xlWorksheet.Cells[1, 1].Value2 = membersArray;