/// <summary>
    /// 使用Aspose读取Excel数据
    /// </summary>
    public class ExcelHelperCore
    {
        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="fields"></param>
        /// <param name="list"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static OperationResult ExportExcel<T>(Dictionary<string, string> fields, IEnumerable<T> list, string fileName)
           where T : new()
        {
            if (fields == null || fields.Count == 0)
            {
                return new OperationResult(OperationResultType.ParamError, "先指定字段");
            }
            var workbook = new Workbook();
            var sheet = workbook.Worksheets[0];
            var cells = sheet.Cells;
            Style style = workbook.Styles[workbook.Styles.Add()];//新增样式 
            style.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
            style.Font.Name = "宋体";//文字字体
            style.Font.Size = 10;//文字大小 
            style.Font.IsBold = true;//粗体 
            int i = 0;
            foreach (KeyValuePair<string, string> keyValuePair in fields)
            {
                cells[0, i].SetStyle(style);            //给单元格关联样式 
                cells.SetRowHeight(0, 18);              //设置行高  
                cells.SetColumnWidth(i, 16);//设置列宽
                //列头
                cells[0, i].PutValue(keyValuePair.Value);
                i++;
            }
            PropertyInfo[] properties = new T().GetType().GetProperties();
            int row = 1;
            foreach (T item in list)
            {
                i = 0;
                foreach (KeyValuePair<string, string> keyValuePair in fields)
                {
                    foreach (PropertyInfo property in properties)
                    {
                        if (property.Name == keyValuePair.Key)
                        {
                            if (property.PropertyType.Name.StartsWith("DateTime"))
                            {
                                var time = Convertor.ConvertToDateTime(property.GetValue(item), DateTime.MinValue);
                                if (time == DateTime.MinValue || time < new DateTime(2010, 1, 1))
                                {
                                    cells[row, i].PutValue("");
                                }
                                else
                                {
                                    cells[row, i].PutValue(time.ToString("yyyy-MM-dd HH:mm"));
                                }
                            }
                            else
                            {
                                cells[row, i].PutValue(property.GetValue(item));
                            }
                        }
                    }
                    i++;
                }
                row++;
            }
            workbook.Save(HttpContext.Current.Response, fileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
            return new OperationResult(OperationResultType.Success, "导出成功");
        }
        /// <summary>
        /// 表单导出
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="colums"></param>
        /// <param name="property"></param>
        /// <param name="list"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static OperationResult ExportExcelForm<T>(List<string> colums, string property, IEnumerable<IEnumerable<T>> list, string fileName)
           where T : new()
        {
            if (colums == null || colums.Count == 0)
            {
                return new OperationResult(OperationResultType.ParamError, "先指定字段");
            }
            var workbook = new Workbook();
            var sheet = workbook.Worksheets[0];
            var cells = sheet.Cells;
            Style style = workbook.Styles[workbook.Styles.Add()];//新增样式 
            style.HorizontalAlignment = TextAlignmentType.Center;//文字居中 
            style.Font.Name = "宋体";//文字字体
            style.Font.Size = 10;//文字大小 
            style.Font.IsBold = true;//粗体 
            int i = 0;
            #region collumn set
            foreach (var c in colums)
            {
                cells[0, i].SetStyle(style);            //给单元格关联样式 
                cells.SetRowHeight(0, 18);              //设置行高  
                cells.SetColumnWidth(i, 16);//设置列宽
                //列头
                cells[0, i].PutValue(c);
                i++;
            }
            #endregion
            if (null == list || !list.Any())
            {
                return new OperationResult(OperationResultType.ParamError, "导出内容不能为空");
            }
            PropertyInfo[] properties = new T().GetType().GetProperties();
            int row = 1;
            foreach (IEnumerable<T> lst in list)
            {
                i = 0;
                foreach (T item in lst)
                {
                    if (i > colums.Count)
                    {
                        break;
                    }
                    foreach (PropertyInfo p in properties)
                    {
                        if (p.Name == property)
                        {
                            cells[row, i].PutValue(p.GetValue(item));
                        }
                    }
                    i++;
                }
                row++;
            }
            workbook.Save(HttpContext.Current.Response, fileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
            return new OperationResult(OperationResultType.Success, "导出成功");
        }
        public static DataTable ExcelToDatatalbe(String strFileName)//导入
        {
            Workbook book = new Workbook(strFileName);
            Worksheet sheet = book.Worksheets[0];
            Cells cells = sheet.Cells;
            //获取excel中的数据保存到一个datatable中
            DataTable dt_Import = cells.ExportDataTableAsString(1, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);
            // dt_Import.
            return dt_Import;
        }
    }
原文:https://www.cnblogs.com/zlj-rechio/p/9953662.html