NOPI的操作

  public class ExcelHelper
    {
        public static void SaveToExcel<T>(List<T> list, string fileName)
        {
            Type t = typeof(T);


            IWorkbook wrk = new HSSFWorkbook();
            // Sheet的名字,肯定使用T的名字
            ISheet sheet = wrk.CreateSheet(t.Name);
           
            PropertyInfo[] ps = t.GetProperties();


            for (int i = 0; i < list.Count; i++)
            {
                IRow r = sheet.CreateRow(i);
                // 创建数据
                // r.CreateCell(0).SetCellValue();
                // 遍历Per的属性值
                for (int j = 0; j < ps.Length; j++)
                {
                    // 获得第j个属性的值
                    object o = ps[j].GetValue(list[i], null);
                    // 判断o的类型,并将其转换赋值到单元格中
                    if (o != null)
                    {
                        switch (o.GetType().Name.ToLower())
                        {
                            case "int16":
                            case "int32":
                            case "int64":
                            case "double":
                            case "decimal": r.CreateCell(j).SetCellValue(Convert.ToDouble(o)); break;                           
                            case "boolean": r.CreateCell(j).SetCellValue(Convert.ToBoolean(o)); break;
                            case "datetime":
                                ICell c = r.CreateCell(j);
                                ICellStyle cstyle = wrk.CreateCellStyle();
                                cstyle.DataFormat = wrk.CreateDataFormat().GetFormat("yyyy/MM/dd hh:mm:ss");
                                c.CellStyle = cstyle;
                                c.SetCellValue(Convert.ToDateTime(o)); break;
                            default:
                                r.CreateCell(j).SetCellValue(o.ToString()); break;
                        }
                    }
                }
            }
            using (FileStream file = new FileStream(fileName, FileMode.Create, FileAccess.Write))
            {
                wrk.Write(file);
            }

        }


对应的引用

   private void btnSaveTo_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog sfd = new SaveFileDialog())
            {
                sfd.Filter = "Excel文件(*.xls)|*.xls|所有文件(*.*)|*.*";
                if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                { 
                    // 执行保存代码
                    string file = sfd.FileName;
                    List<Model.Productinfo> list = dgViewProductList.DataSource as List<Model.Productinfo>;
                    if (list == null) return;


                    ExcelHelper.SaveToExcel<Model.Productinfo>(list, file);
                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值