ImportCommon

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace WLYD.Utility.File
{
    public class ImportCommon
    {

        public static string TitleRequiredValidate(PropertyInfo[] properties, Dictionary<int, string> titleDic)
        {
            foreach (var property in properties)
            {
                var attr = (DisplayAttribute)property.GetCustomAttribute(typeof(DisplayAttribute), false);
                if (attr != null && !string.IsNullOrEmpty(attr.Name))
                {
                    if (!titleDic.Values.Any(h => h == attr.Name))
                    {
                        return attr.Name;
                    }
                }
            }
            return null;
        }

        public static object StringToPropertyValue(PropertyInfo property, string src)
        {
            object obj = null;
            switch (property.PropertyType.Name)
            {
                case "String":
                    return src;
                case "Decimal":
                    return decimal.Parse(src);
                case "Int32":
                    return int.Parse(src);
                case "DateTime":
                    return DateTime.Parse(src);
                case "Boolean":
                    return bool.Parse(src);
            }
            return obj;
        }

        public static string GetPropertyByExcelName(PropertyInfo[] properties, string excelTitleName)
        {
            foreach (var property in properties)
            {
                var attr = (DisplayAttribute)property.GetCustomAttribute(typeof(DisplayAttribute), false);
                if (attr != null && attr.Name == excelTitleName)
                {
                    return property.Name;
                }
            }
            return null;
        }

        /// <summary>
        /// 获取流编码
        /// </summary>
        /// <param name="fs"></param>
        /// <returns></returns>
        public static Encoding GetStreamEncode(Stream fs)
        {
            System.IO.BinaryReader br = new System.IO.BinaryReader(fs);

            Byte[] buffer = br.ReadBytes(2);

            if (buffer[0] >= 0xEF)

            {

                if (buffer[0] == 0xEF && buffer[1] == 0xBB)

                {

                    return System.Text.Encoding.UTF8;

                }

                else if (buffer[0] == 0xFE && buffer[1] == 0xFF)

                {

                    return System.Text.Encoding.BigEndianUnicode;

                }

                else if (buffer[0] == 0xFF && buffer[1] == 0xFE)

                {

                    return System.Text.Encoding.Unicode;

                }

                else

                {

                    return System.Text.Encoding.Default;

                }

            }

            else

            {

                return System.Text.Encoding.Default;

            }
        }
    }
}

  

原文地址:https://www.cnblogs.com/wangpd/p/6867378.html