C#使用模板导出Excel

Posted haixiaocan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#使用模板导出Excel相关的知识,希望对你有一定的参考价值。

前言:此随笔仅供自己学习,如有不足请指出

 

在某些情况导出的时候,会有很复杂的表头或者样式,如果靠代码去调整的话回很麻烦,需要写很多代码,这个时候可以预先设置好表格,这样就方便灵活很多。

 

/// <summary>
        /// 使用模板导出Excel
        /// </summary>
        /// <param name="listEntity">数据集</param>
        /// <param name="path">路径</param>
        /// <param name="index">从第几行插入</param>
        /// <returns></returns>
        public static byte[] TemplateOutput(Array listEntity, string path, int index)
        
            if ((listEntity?.Length ?? 0) == 0)
            
                return new byte[]  ;
            
            using (MemoryStream ms = new MemoryStream())
            
                Type entityType = listEntity.GetValue(0).GetType(); ;
                var entityProperties = entityType.GetProperties();
                string extension = Path.GetExtension(path);
                FileStream fs = File.OpenRead(path);
                IWorkbook workbook = null;
                if (extension.Equals(".xls"))
                
                    workbook = new HSSFWorkbook(fs);
                
                else
                
                    workbook = new XSSFWorkbook(fs);
                
                fs.Close();
                ISheet sheet = workbook.GetSheetAt(0);
                IRow rows = null;
                int i = 0;
                foreach (var dbitem in listEntity)
                
                    rows = sheet.CreateRow(i++ + index);
                    for (int j = 0; j < entityProperties.Length; j++)
                    
                        var prop = entityProperties[j];
                        var value = prop.GetValue(dbitem)?.ToString();
                        rows.CreateCell(j).SetCellValue(value ?? "");
                    
                
                workbook.Write(ms);
                return ms.ToArray();
            
        

 

以上是关于C#使用模板导出Excel的主要内容,如果未能解决你的问题,请参考以下文章

C#使用模板导出Excel

求C# winform 使用NPOI 通过excel模板制作excel导出。

c#导出excel慢

c#数据表导出excel

在 c# 中使用 Open Xml SDK 将 DataTable 导出到 Excel

excel 怎样按模板导出