常用的自定义函数

using System;
using System.Windows.Forms;
using System.Text;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
using System.Collections;
using System.IO;

namespace Hxh.API
{
 /// <summary>
 /// Function 的摘要说明。
 /// </summary>
 public class Function
 {
  public Function()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }


  /// <summary>
  /// 判断树结点所处级数
  /// </summary>
  /// <param name="tn"></param>
  /// <returns></returns>
  public static int LevelOfNode(TreeNode tn)
  {
   int x=0;
   if(tn.Parent!=null)
    return LevelOfNode(tn.Parent)+1;
   else
    return x;
  }

  /// <summary>
  /// 判断一个字符串是否全部为数字
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static bool IsNumber(string str)
  {
   bool IsNumb=true;
   foreach(char ch in str.ToCharArray())
   {
    if((ch>='0' && ch<='9')||ch=='.')
    {
    }
    else
    {
     IsNumb=false;
    }
   }
   return IsNumb;
  }

  /// <summary>
  /// 移去非数字字符
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static string MoveNotNumberChar(string str)
  {
   for(int i=0;i<str.Length;i++)
   {
    if(str[i]<'0'||str[i]>'9')
    {
     str=str.Remove(i,1);
    }
   }
   return str;
  }

  /// <summary>
  /// 只接受数字录入
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  public static void OnlyEntryNumber(object sender, System.Windows.Forms.KeyPressEventArgs e)
  {
   if((e.KeyChar>='0'&&e.KeyChar<='9')||e.KeyChar=='.'||e.KeyChar==(char)127||e.KeyChar==(char)8) 
   {
    e.Handled=false;
   }
   else
   {
    e.Handled=true;
   }
  }

  /// <summary>
  /// 最后一个字符位置
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static int LastCharIndexOf(string str)
  {
   int I=-1;
   for(int i=str.Length-1;i>=0;i--)
   {
    if(str[i]<'0' || str[i]>'9')
    {
     I=i;
     break;
    }
   }
   return I;
  }


  /// <summary>
  /// 字符转换为数值
  /// </summary>
  /// <param name="str"></param>
  /// <returns></returns>
  public static decimal StrToInt(string str)
  {
   if(str!=string.Empty)
   {
    try
    {
     return Convert.ToDecimal(str);
    }
    catch
    {
     return 0;
    }
   }
   else
   {
    return 0;
   }
  }

  /// <summary>
  /// 括号是否匹配
  /// </summary>
  /// <param name="al"></param>
  /// <returns></returns>
  public static bool BracketsIsPetch(ArrayList al)
  {
   int countor=0;
   for(int i =0;i<al.Count;i++)
   {
    if(al[i].ToString()=="(")
     countor++;
    else if(al[i].ToString()==")")
     countor--;
   }
   if(countor >0)
    return true;
   else
    return false;

  }

  /// <summary>
  /// 判断一个路径是否合法
  /// </summary>
  /// <param name="strPath"></param>
  /// <returns></returns>
  public static bool PathIsValidate(string strPath)
  {
   strPath=strPath.ToUpper();
   if(strPath.Length<3)
    return false;
   if(strPath[0]<'C' || strPath[0]>'H' )
    return false;
   if(strPath[1]!=':')
    return false;
   if(strPath[2]!='//')
    return false;
   char[] IllegalChars={'/','*','?','<','>','"','|'};
   if(strPath.IndexOfAny(IllegalChars,3)>-1)
    return false;
   return true;
  }


  /// <summary>
  /// 验证E_mail格式是否正确
  /// </summary>
  /// <param name="E_mail">E_mail地址</param>
  /// <returns>如果格式正确,则返回 true,如果不正确则返 false</returns>
  public static bool IsValidEmail(string E_mail)
  {
   E_mail=E_mail.Trim();
   return Regex.IsMatch(E_mail, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");
  }


  //验证是否为电话号码
  /// <summary>
  /// 验证电话号码格式是否正确
  /// </summary>
  /// <param name="Phone">电话号码</param>
  /// <returns>如果格式正确,则返回 true,否则返回 false</returns>
  public static bool IsValidPhone(string Phone)
  {
   Phone=Phone.Trim();
   return Regex.IsMatch(Phone,@"(/d+-)?(/d{4}-?/d{7}|/d{3}-?/d{8}|^/d{7,8})(-/d+)?");
  }


  /// <summary>
  /// 验证身份证号码格式是否正确
  /// </summary>
  /// <param name="UID">身份证号码</param>
  /// <returns>如果格式正确,则返回 true,否则返回 false</returns>
  public static bool IsValidUID(string UID)
  {
   UID=UID.Trim();
   return Regex.IsMatch(UID,"//d{18}");
  }


  /// <summary>
  /// 验证邮政编码格式是否正确
  /// </summary>
  /// <param name="UID">邮政编码</param>
  /// <returns>如果格式正确,则返回 true,否则返回 false</returns>
  public static bool IsValidPostalCode(string PostalCode)
  {
   PostalCode=PostalCode.Trim();
   return Regex.IsMatch(PostalCode,"[1-9]//d{5}(?!//d)");
  }


  /// <summary>
  /// 验证URL格式是否正确
  /// </summary>
  /// <param name="UID">RUL</param>
  /// <returns>如果格式正确,则返回 true,否则返回 false</returns>
  public static bool IsValidURL(string URL)
  {
   URL=URL.Trim();
   return Regex.IsMatch(URL,"http://([//w-]+//.)+[//w-]+(/[//w- ./?%&=]*)?");
  }


//  /// <summary>
//  /// 生成纯数字的ID
//  /// </summary>
//  /// <param name="width"></param>
//  /// <returns></returns>
//  public static string GenUnidueID(int width)
//  {
//   UniqueID unq=new UniqueID();
//   return unq.GenUniqueID(width,"NUM");
//  }


  /// <summary>
  /// 判断合成后的评价结果是否及格
  /// </summary>
  /// <param name="strSample"></param>
  /// <param name="strStandard"></param>
  /// <returns></returns>
  public static bool CompareLevelResult(string strSample,string strStandard)
  {
   char[] levels={'A','B','C','D'};
   bool ret=true;
   int mult1,mult2;
   foreach(char lvl in levels)
   {
    mult1=mult2=1;
    if(strSample.IndexOf(lvl)>=0 && strStandard.IndexOf(lvl)<0)
    {
     ret=true;
     break;
    }
    else if(strSample.IndexOf(lvl)<0 && strStandard.IndexOf(lvl)>=0)
    {
     ret=false;
     break;
    }
    else if(strSample.IndexOf(lvl)>=0 && strStandard.IndexOf(lvl)>=0)
    {
     if(strSample.IndexOf(lvl)>0)
     {
      if(IsNumber(strSample.Substring(strSample.IndexOf(lvl)-1,1)))
      {
       mult1=Convert.ToInt32(strSample.Substring(strSample.IndexOf(lvl)-1,1));
      }
     }
     if(strStandard.IndexOf(lvl)>0)
     {
      if(IsNumber(strStandard.Substring(strStandard.IndexOf(lvl)-1,1)))
      {
       mult2=Convert.ToInt32(strStandard.Substring(strStandard.IndexOf(lvl)-1,1));
      }
     }
     if(mult1>mult2)
     {
      ret=true;
      break;
     }
     else if(mult1<mult2)
     {
      ret=false;
      break;
     }
    }
   }
   return ret;
            
  }

  /// <summary>
  /// 返回原始等级未达标的维度个数
  /// </summary>
  /// <param name="strSample"></param>
  /// <param name="strStandard"></param>
  /// <returns></returns>
  public static int ComparePrimitLevelResult(string strSample,string strStandard)
  {
   int t=0;
   if(strSample.Length!=strStandard.Length)
   {
    return -1;
   }
   for(int i=0;i<strStandard.Length;i++)
   {
    if(strSample[i]>strStandard[i])
    {
     t++;
    }
   }
   return t;

  }

  /// <summary>
  /// 比较字符串大小,1大,-1小,0相等
  /// </summary>
  /// <param name="strTarget"></param>
  /// <param name="strOrigin"></param>
  /// <returns></returns>
  public static int CompareString(string strTarget,string strOrigin)
  {
   int rst=0;
   for(int i=0;i<strTarget.Length;i++)
   {
    if(strOrigin[i]>strTarget[i])
    {
     rst = 1;
     break;
    }
    else if(strOrigin[i]>strTarget[i])
    {
     rst = -1;
     break;
    }
   }
   return rst;
  }


  /// <summary>
  /// 定长字符串序号加1
  /// </summary>
  /// <param name="str"></param>
  /// <param name="width"></param>
  /// <returns></returns>
  public static string AddOne(string str,int width)
  {
   str=str.Trim();
   int tmp=int.Parse(str.Substring(str.Length-width))+1;
   return str.Substring(0,str.Length-width)+tmp.ToString().PadLeft(width,'0');
   
  }

  /// <summary>
  /// MD5加密
  /// </summary>
  /// <param name="strOriginal"></param>
  /// <returns></returns>
  public static string Encoding(string strOriginal)
  {
   Byte[] pwdBytes=new System.Text.UnicodeEncoding().GetBytes(strOriginal);
   Byte[] hashBytes=((HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(pwdBytes);
   return BitConverter.ToString(hashBytes);

  }

  /// <summary>
  /// MD5解密
  /// </summary>
  /// <param name="strCryptography"></param>
  /// <returns></returns>
  public static string Decoding(string strCryptography)
  {
   Byte[] pwdBytes=new System.Text.UnicodeEncoding().GetBytes(strCryptography);
   Byte[] hashBytes=((HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(pwdBytes);
   return BitConverter.ToString(hashBytes);
  }

  const string KEY_64 = "VavicApp";
  const string IV_64 = "VavicApp"; //注意了,是8个字符,64位

  /// <summary>
  /// 文本加密
  /// </summary>
  /// <param name="data"></param>
  /// <returns></returns>
  public static string TextEncode(string data)
  {
   byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
   byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

   DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
   int i = cryptoProvider.KeySize;
   MemoryStream ms = new MemoryStream();
   CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);

   StreamWriter sw = new StreamWriter(cst);
   sw.Write(data);
   sw.Flush();
   cst.FlushFinalBlock();
   sw.Flush();
   return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);

  }

  /// <summary>
  /// 文本解密
  /// </summary>
  /// <param name="data"></param>
  /// <returns></returns>
  public static string TextDecode(string data)
  {
   byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
   byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

   byte[] byEnc;
   try
   {
    byEnc = Convert.FromBase64String(data);
   }
   catch
   {
    return null;
   }

   DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
   MemoryStream ms = new MemoryStream(byEnc);
   CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
   StreamReader sr = new StreamReader(cst);
   return sr.ReadToEnd();
  }

 

 }
}
 

目录 '1.函数作用:返回 Column 英文字........................9 '2.函数作用:查询某一值第num次出现的值................9 '3.函数作用:返回当个人工资薪金所得为2000元(起征点为850元)时的应纳个人所得税税额.............................10 '4.函数作用:从形如"123545ABCDE"的字符串中取出数字....11 '5.函数作用:从形如"ABCD12455EDF"的字符串中取出数字...11 '6.函数作用:按SplitType取得RangeName串值中的起始位置12 '7.函数作用:将金额数字转成中文大写....................13 '8.函数作用:计算某种税金..............................18 '9.函数作用:人民币大、小写转换........................19 '10.函数作用:查汉字区位码.............................20 '11.函数作用:把公元年转为农历.........................21 '12.函数作用:返回指定列数的列标.......................42 '13.函数作用:用指定字符替换某字符.....................43 '14.函数作用:从右边开始查找指定字符在字符串中的位置...43 '15.函数作用:从右边开始查找指定字符在字符串中的位置...44 '16.函数作用:计算工龄.................................44 '17.函数作用:计算日期差,除去星期六、星期日...........45 '18.函数作用:将英文字反转的自定函数...................46 '19.函数作用:计算个人所得税...........................46 '20.函数作用:一个能计算是否有重复单元的函数...........47 '21.数字金额转中文大写................................48 '22.函数作用:将数字转成英文...........................49 '23.函数作用:人民币大小写转换.........................52 '24.函数作用:获取区域颜色值...........................53 '25.函数作用:获取活动工作表名.........................53 '26.函数作用:获取最后一行行数.........................54 '27.函数作用:判断是否连接在线.........................54 '28.函数作用:币种转换.................................54 '29.函数作用:检验工作表是否有可打印内容...............55 '30.函数作用:查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到。..................................................57 '31.函数作用:增加文件路径最后的“\”符号..............58 '32.函数作用:计算所得税...............................58 '33.函数作用:从工作表第一行的标题文字以数字形式返回所在列号..................................................58 '34.函数作用:在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和..........................59 '35.函数作用:返回 Column 英文字.......................60 '36.函数作用:查找指定列名的列数.......................60 '37.函数作用:文字格式的时间(分:秒)转化为数字格式(秒)..61 '38.函数作用:将"hh:mm:ss"格式的时分秒数转换成秒数.....62 '39.函数作用:金额中文大写转数字.......................62 '40.函数作用:把角度转为度秒分、弧度等显示.............63 '41.函数作用:身份证号码侦测...........................64 '42.函数作用:显示公式.................................65 '43.函数作用:方便财务人员理帐查找.....................66 '44.函数作用:数值转换为字符地址.......................68 '45.函数作用:字符地址转换为数值.......................69 '46.函数作用:等待时间(以秒计算).....................69 '47.函数作用:得到字符串实际的长度(以单字节记).......70 '48.函数作用:18位身份证最后一位有效性验证............70 '49.函数作用:计算符合maturity condition的拆解金额....72 '50.函数作用:对多个用同一分隔符分隔的待查找元素,逐一在表区域首列内搜索,将返回选定单元格的值相加,............72 '51.函数作用:根据个人所得税(工资)反算工资数.........73 '52.函数作用:判断表是否存在...........................74 '53.函数作用:角度转弧.................................74 '54.函数作用:比较相同的字符串.........................75 '55.函数作用:对选定的数组进行排序.....................76 '56.函数作用:取得指定月份天数.........................77 '57.函数作用:排序工作表活页薄.........................77 '58.函数作用:统计数组中非重复数据个数.................78 '59.函数作用:摘取子字符串.............................79 '60.函数作用:计算20000余个汉字的笔画.................79 '61.函数作用:删除当前工作表中的全部超连接.............80 '62.函数作用:取得相近数据.............................81 '63.函数作用:提取定串中汉字...........................81 '64.函数作用:搜索重复数据(选定范围)...................81 '65.函数作用:字符型转数字型...........................82 '66.函数作用:小写人民币转大写人民币...................83 '67.函数作用:取得指定月份人星期天个数.................84 '68.函数作用:侦测档案是否包含宏.......................84 '69.函数作用:获取循环参照单元格.......................85 '70.函数作用:创建桌面快捷方式.........................86 '71.函数作用:自动建立多级目录.........................86 '72.函数作用:统计经筛选后符合条件的记录条数...........87 '73.函数作用:复制单元格列高与栏宽.....................87 '74.函数作用:取消隐藏工作表(包括vba Project工程保护的)88 '75.函数作用:删除单元格自定义名称.....................88 '76.函数作用:从文件路径中取得文件名...................89 '77.函数作用:取得一个文件的扩展名.....................89 '78.函数作用:取得一个文件的路径.......................90 '79.函数作用:十进制转二进制...........................90 '80.函数作用:检查一个数组是否为空.....................90 '81.函数作用:字母栏名转数字栏名.......................91 '82.函数作用:数字栏名转文字栏名.......................91 '83.函数作用:判断一件活页夹中是否还有子目录...........92 '84.函数作用:判断一个文件是否在使用中.................92 '85.函数作用:列出档案详细摘要信息.....................93 '86.函数作用:获取菜单ID编号及名称列表................93 '87.函数作用:状态列动态显示文字.......................94 '88.函数作用:取得一个文件的路径2.....................94 '89.函数作用:取得一个文件的路径3.....................95 '90.函数作用:取得Activecell的栏名....................95 '91.函数作用:取得单元格中指定字符前的字符.............95 '92.函数作用:前单元格指定字符前的字符颜色改成红色.....95 '93.函数作用:根据数字返回对应的字母列号...............96 '94.函数作用:取工作表名字.............................96 '95.函数作用:取消所有隐藏的宏表.......................97 '96.函数作用:导出VBA Project代码.....................97 '97.函数作用:导入VBA Project代码.....................97 '98.函数作用:取得汉字拼音的第一个字母.................98 '99.函数作用:获取两栏中相同的数据....................100 '100.函数作用:选取当前工作表中公式出错的单元格﹐关返回出错个数...............................................101 '101.函数作用:将工作表中最后一列作为页脚打印在每一面页尾101 '102.函数作用:获取vbproject引用项目.................102 '103.函数作用:移除Excel工作表中的外部数据连接.......103 '104.函数作用:将选择定单元格作成镜像图片.............103 '105.函数作用:反选择单元格中的数.....................105 '106.函数作用:在Excel中加入一个量度尺(以厘米为单位).106 '107.函数作用:在Excel中加入一个量度尺(以寸为单位)...109 '108.函数作用:取得一个短文件名的长文件名.............111 '109.函数作用:取得临时文件名.........................112 '110.函数作用:等用Shell调用的程序执行完成后再执行其它程序...................................................112 '111.函数作用:将Mouse显示成动画.....................113 '112.函数作用:限制Mouse移动范围.....................114 '113.函数作用:取得当前激活窗品句柄及标题.............114 '114.函数作用:取得屏幕分辨率.........................115 '115.函数作用:自动建立多级目录.......................115 '116.函数作用:将文件长度置零.........................116 '117.函数作用:读取WIN9X / Me共享文件夹密码..........116 '118.函数作用:取得预设的打印机及设置预设的打印机.....119 '119.函数作用:获得当前操作系统的打印机个数及检测打印是否存在.................................................120 '120.函数作用:枚举打印机名称清单.....................120 '121.函数作用:读取网络服务器当前时间.................122 '122.函数作用:下载文件到指定目录.....................123 '123.函数作用:自动映射网络驱动器.....................124 '124.函数作用:自动断开网络驱动器.....................125 '125.函数作用:连接选定单元格中的内容.................125 '126.函数作用:获取一个单元格中有指定字体颜色部份数据.126 '127.函数作用:对指定文件加XLS加密...................126 '128.函数作用:选择指定范围内使用了填充颜色的单元格...127 '129.函数作用:在特定的区域内查找文本,返回值是包含查找文本的单元格...........................................127 '130.函数作用:返回特定区域中最大值的地址.............128 '131.函数作用:删除表格中使用范围内的所有空白单元格...129 '132.函数作用:返回数组中有多少个指定的字符串.........129 '133.函数作用:返回当前工作表中引用了指定的单元的地址.130 '134.函数作用:获取Excel中字型列表...................131 '135.函数作用:获取一个字符串中有多少个数字字符.......131 '136.函数作用:在Excel中对多列进行填充...............131 '137.函数作用:对选定的范围进行数据填充(忽略单元格格式)132 '138.函数作用:VBA Project加密及解密.................132 '139.函数作用:列出收藏夹中的网址.....................133 '140.函数作用:计算两个日期之间相隔的年份,比如年龄,工龄等.可计算从1000年01月01日起的日期....................134 '141.函数作用:从字符串提取纯数字.....................135 '142.函数作用:将一个数组按升序排列...................136 '143.函数作用:将一个数组按降序排列...................137 '144.函数作用:删除空白列.............................137 '145.函数作用:判断工作表是否为空白...................138 '146.函数作用:将数据按类分到不同工作薄...............138 '147.函数作用:单元格内数据排序.......................139 '148.函数作用:对多栏排序.............................140 '149.函数作用:返回计算公式的值 [,值的计算公式].......140 '150.函数作用:把第一列=某个值对应的第二列的内容连在一起,并用、隔开...........................................141 '151.函数作用:取得系统使用模式.......................142 '152.函数作用:计算机注销/关机/重启...................142 '153.函数作用:更改计算机名称.........................143 '154.函数作用:从n位开始取出字符串中的汉字、英文字母、数字...................................................143 '155.函数作用:在指定列中寻找含有指定字符串的单元格,并将符合条件的单元格标为红色,并将对应的下一列单元格赋值为1。.....................................................144 '156.函数作用:清除字符串中的空格.....................145 '157.函数作用:查找合并单元格位置.....................145 '158.函数作用:阴阳历转换和阴阳历生日.................145 '159.函数作用:利用数组和Substitute来替换某字符......149 '160.函数作用:一键创建斜线表头.......................150 '161.函数作用:自动获取指定月的工作日.................151
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值