C#通过构建Excel模版,填写数据进行导入

//通过构建Excel模版,填写数据进行导入
//建立一个学生数据
Student dd = new Student();
List a = dd.GetStudentData();
//目录路径
string PATH = @“D:\123.xls”;
//调用建表方法
DataExport(a, PATH);

 //构建Excel模版,填写数据进行导入类方法
        public static void DataExport<T>(List<T> list, string filePath)
        {
            if (list.Count > 0)
            {
                //用于创建文件
                using (FileStream fileStream = new FileStream(filePath, FileMode.OpenOrCreate))
                {
                    //用于写入内容
                    using (StreamWriter streamWriter = new StreamWriter(new BufferedStream(fileStream), Encoding.Default))
                    {
                        //表头
                        string tbhead = String.Empty;
                        var entity = list[0].GetType();
                        PropertyInfo[] piList = entity.GetProperties();

                        foreach (PropertyInfo pi in piList)
                        {
                            tbhead += pi.Name + "\t";
                        }
                        //取完表头,换行
                        tbhead = tbhead.Substring(0, tbhead.Length - 1) + "\n";
                        //表头写入
                        streamWriter.Write(tbhead);

                        foreach (var v in list)
                        {
                            string tbbody = String.Empty;
                            StringBuilder tbBody = new StringBuilder();
                            for (int i = 0; i < piList.Length; i++)
                            {
                                //Console.WriteLine(piList[i].GetMethod.Invoke(v, null));
                                object value = piList[i].GetMethod.Invoke(v, null);
                                tbBody.Append(value);//内容
                                tbBody.Append("\t");//自动跳到下一单元格
                            }
                            tbbody = tbBody.ToString();
                            tbbody = tbbody.Substring(0, tbbody.Length - 1) + "\n";//取完一行内容,换行
                            streamWriter.Write(tbbody);//内容写入
                        }
                    }
                }
            }
            else
            {

            }

        }



        //学生数据生成
        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; } }

            public 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;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值