/// <summary>
        /// 创建单个Sheet
        /// </summary>
        /// <returns></returns>
        private void CreateSingleSheet(IWorkbook workbook, MaterialCategoryDTO category, string locale, string sheetName, ExportTemplate template, PageResult <IDictionary <string, object> > result)
        {
            ISheet sheet        = workbook.CreateSheet(sheetName);
            var    row          = sheet.CreateRow(0);
            var    exportFields = template.Headers.Select(y => y.Field).ToList();
            int    k            = 0;
            int    columnIndex  = 0;

            for (int i = 0; i < exportFields.Count; i++)
            {
                if (exportFields[i].Equals("Configs"))  //配置参数
                {
                    for (k = 0; k < category.Configs.Count; k++)
                    {
                        var cell = row.CreateCell(columnIndex + k, CellType.String);
                        cell.SetCellValue("en-us".EqualsIgnoreCase(locale) ?
                                          category.Configs[k].ConfigKey : category.Configs[k].ConfigKeyDesc); //表头
                        columnIndex++;
                    }
                }
                else
                {
                    if (IsSheetColumnShow(category, exportFields[i]))
                    {
                        var cell   = row.CreateCell(columnIndex + (k > 0 ? k - 1 : k), CellType.String);
                        var header = template.Headers.FirstOrDefault(x => x.Field.Equals(exportFields[i]));
                        cell.SetCellValue("en-us".EqualsIgnoreCase(locale) ? header.EnHeaderText : header.CnHeaderText); //表头
                        columnIndex++;
                    }
                }
            }

            for (int i = 1; i < result.Items.Count() + 1; i++)
            {
                k           = 0;
                row         = sheet.CreateRow(i);
                columnIndex = 0;
                for (int j = 0; j < exportFields.Count; j++)
                {
                    if (exportFields[j].Equals("Configs"))  //配置参数
                    {
                        for (k = 0; k < category.Configs.Count; k++)
                        {
                            var cell = row.CreateCell(columnIndex + k, CellType.String);
                            cell.SetCellValue(result.Items.ElementAt(i - 1)[category.Configs[k].ConfigKey]?.ToString());
                            columnIndex++;
                        }
                    }
                    else
                    {
                        if (IsSheetColumnShow(category, exportFields[j]))
                        {
                            var cell = row.CreateCell(columnIndex + (k > 0 ? k - 1 : k), CellType.String);
                            cell.SetCellValue(result.Items.ElementAt(i - 1)[exportFields[j]]?.ToString());
                            columnIndex++;
                        }
                    }
                }
            }
        }
 /// <summary>
 ///  过滤掉有些sheet 不需要显示的列
 /// </summary>
 /// <param name="category"></param>
 /// <param name="field"></param>
 /// <returns></returns>
 private bool IsSheetColumnShow(MaterialCategoryDTO category, string field)
 {
     if (field == "ContainerPartNumber" && true != category.RequireContainer)  //有可能是null
     {
         return(false);
     }
     if (field == "RackPn" && true != category.RequireRack)//有可能是null
     {
         return(false);
     }
     return(true);
 }