C#将List中的数据导入Excel文件中

        上一篇描述的是C#读取XML中的数据保存到List。今天描述一下如何将List中的数据导入到Excel中。我的实现是根据下面的博客进行改进的,这里给出原来博客的内容。

        由于是Excel文件,所以要用到Office相关的dll,故请添加相应dll的引用,然后在程序中添加如下命名空间:

using Microsoft.Office.Interop.Excel;
        自定义Student类:

    public class Student
    {
        private string id;
        public string Id { get { return id; } set { id = value; } }

        private string name;
        public string Name { get { return name; } set { name = value; } }

        private string age;
        public string Age { get { return age; } set { age = value; } }
    }
        给出简单的模拟数据:

        private List<Student> GetStudentData()
        {
            List<Student> studentList = new List<Student>();

            Student s1 = new Student();
            s1.Id = "1";
            s1.Name = "haha";
            s1.Age = "10";

            Student s2 = new Student();
            s2.Id = "2";
            s2.Name = "xixi";
            s2.Age = "20";

            Student s3 = new Student();
            s3.Id = "3";
            s3.Name = "lolo";
            s3.Age = "30";

            studentList.Add(s1);
            studentList.Add(s2);
            studentList.Add(s3);

            return studentList;
        }
        用反射获取类型的所有属性(以便后续生成所有Column的标题):
        private PropertyInfo[] GetPropertyInfoArray()
        {
            PropertyInfo[] props = null;
            try
            {
                Type type = typeof(EricSunApp.Student);
                object obj = Activator.CreateInstance(type);
                props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            }
            catch (Exception ex)
            { }
            return props;
        }
        遍历List,将数据保存成Excel文件:
        private void SaveDataToExcelFile(List<Student> studentList, string filePath)
        {
            object misValue = System.Reflection.Missing.Value;
            Application xlApp = new Application();
            Workbook xlWorkBook = xlApp.Workbooks.Add(misValue);
            Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1);

            PropertyInfo[] props = GetPropertyInfoArray();
            for (int i = 0; i < props.Length; i++)
            {
                xlWorkSheet.Cells[1, i + 1] = props[i].Name; //write the column name
            }
            for (int i = 0; i < studentList.Count; i++)
            {
                xlWorkSheet.Cells[i + 2, 1] = studentList[i].Id;
                xlWorkSheet.Cells[i + 2, 2] = studentList[i].Name;
                xlWorkSheet.Cells[i + 2, 3] = studentList[i].Age;
            }
            try
            {
                xlWorkBook.SaveAs(filePath, XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
            }
            catch (Exception ex)
            { }

        }
说明:这里需要注意是,要引入Excel的dll文件。同时
Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1);
可以定义多个,即同一个Excel中可以将数据写到不同的Sheet表中。另外,对于SaveAs()方法的使用,注意必选参数和可选参数。
//下面这段代码是SaveAs()的格式
expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local);
原博客来源:http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849907.html



  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值